当前位置: 首页 > 知识库问答 >
问题:

使用Symfony登录表单验证器进行身份验证时出错

常心水
2023-03-14

我的身份验证系统完全正常工作(我遵循了文档教程)https://symfony.com/doc/current/security/form_login_setup.html).

但我有一个问题:当恶意用户禁用必需的密码字段并尝试登录时,我会收到一个错误500“警告:空密码”

认证系统在一种情况下不起作用:

当用户名与数据库中存储的用户名匹配,但密码为空,并且我尝试登录时,就会出现500 Twig错误。

Symfony告诉我错误来自:UserPasswordEncoder-

这对应于这个代码:

public function checkCredentials($credentials, UserInterface $user)    
{
    return $this->passwordEncoder->isPasswordValid($user, $credentials['password']);
}

如果缺少密码等字段,我希望用户被重定向到登录页面。

提前谢谢你。


共有1个答案

傅浩漫
2023-03-14

我终于找到了解决办法:

public function checkCredentials($credentials, UserInterface $user)    
{
    if (empty($credentials['password'] {
        throw new CustomUserMessageAuthenticationException('Invalid password.');
    }

    return $this->passwordEncoder->isPasswordValid($user, $credentials['password']);
}
 类似资料:
  • 首先,我很抱歉在这里问这样的问题,但是如果您以前从未参与过symfony项目,symfony文档不会提供太多完整的示例。 因此,我已经安装了symfony/security包,并且在本教程中开始了类似的工作https://symfony.com/doc/current/security/form_login_setup.html 包裹/security.yaml 登录路径和检查路径是我的安全控制器

  • 我试图用注册时使用的凭证登录。Firebase已经有注册用户的条目。每次我试图登录它显示“登录不成功”,我没有看到任何代码问题。请帮帮忙。

  • 我所期望的是:当用户从表单登录时,它可以调用restful服务,而无需经过基本身份验证(因为它已经经过身份验证)。我的想法是,角色为'role_user'的用户也应该调用restful服务。但是,当我从表单登录后,我也被提示进行基本身份验证,试图从浏览器调用restful服务。 有没有得到我所期望的?

  • 我们目前正在从遗留安全子系统迁移到Elytron,并在JBoss EAP 7.3.6中部署了一个基于Struts2的web应用程序,该应用程序应该支持多种“风格”的身份验证。 登录的标准方式应该是,用户以登录表单()手动提供凭据,然后单击相应的按钮。这在我们的设置中与Elytron配合得很好。 第二种可能性是,对Web应用程序受保护内容的GET请求可能包含包含JWT令牌的自定义cookie。这个c

  • 使用,https://github.com/firebase/FirebaseUI-Android/tree/master/codelabs/chat作为登录的参考,我在键入时似乎遇到了问题 我只能键入Auth的提供者,而不能键入,为什么会这样,它提示我键入社会提供者。

  • 我使用Laravel 5.2。我想问一个问题。如何更改重定向登录表单在laravel当我们已经做登录?我使用的是来自Php artisan make: auth的auth。 我已经登录并重定向到localhost:8000/admin 然后我再次打开localhost:8000/登录。它将重定向到“/”或localhost:8000/ 我的问题是如何将“/”更改为“/”管理员“?因此,即使我已经登