Symfony 自定义身份验证提供程序失败消息

Symfony custom authentication provider failure messages

我已经创建了自定义表单身份验证提供程序,我需要在身份验证失败时创建消息。当我抛出 BadCredentialsException() 时它很好,因为它被重定向到带有错误消息 "Bad credentials" 的登录页面,但是如果我需要不同的消息来处理不同的失败怎么办?例如,我需要错误然后帐户被阻止或 IP 被禁止。我怎样才能做到这一点?目前我通过导致 500 内部错误的异常。

我编写了扩展 AbstractAuthenticationListener 的自定义身份验证侦听器和实现 AuthenticationProviderInterface

的身份验证提供程序

使用 $authenticationUtils->getLastAuthenticationError();

从控制器传递表单呈现的错误

解决方案是创建另一个异常,它会扩展 BadCredentialsException 并覆盖 returns 消息

的函数