使用symfony和FOSUserBundle在登录时覆盖BadCredentialsException失败

问题描述 投票:0回答:1

我正在使用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;
    }

我在登录表单中转储错误对象。这是截图:enter image description here

任何人都知道如何获得特定的错误消息。提前致谢。

php symfony fosuserbundle symfony-2.8
1个回答
0
投票

您可以在security.yml中进行设置:

security:
   hide_user_not_found: false

请参阅此答案以获取更多详细信息:Managing Symfony BadCredentialsException codes

© www.soinside.com 2019 - 2024. All rights reserved.