我正在使用Symfony 2.8和FriendsOfSymfony / FOSUserBundle 2.12版本。
我期待一个特定的登录错误消息,如果我输入错误的用户名然后我应该收到错误消息“用户名未找到”,如果我给出错误的密码,那么我应该收到错误消息“密码无效”类似的东西。
但相反,我在上述条件下收到相同的错误消息“Bad credentials”。
在进一步研究之后,我发现Symfony在authenticate方法中的UserAuthenticationProvider.php文件中隐藏了UsernameNotFoundException:
try {
$user = $this->retrieveUser($username, $token);
} catch (UsernameNotFoundException $e) {
if ($this->hideUserNotFoundExceptions) {
throw new BadCredentialsException('Bad credentials.', 0, $e);
}
$e->setUsername($username);
throw $e;
}
任何人都知道如何获得特定的错误消息。提前致谢。
您可以在security.yml中进行设置:
security:
hide_user_not_found: false
请参阅此答案以获取更多详细信息:Managing Symfony BadCredentialsException codes