php - 如何调试 symfony4 身份验证失败

标签 php symfony debugging symfony4

我正在尝试按照 symfony 4 documentation 设置传统的登录和注册表单.

使用注册表单,我似乎能够将用户正确注册到 arch linux 上的 mariaDB 数据库中。


我正在使用 symfony 开发服务器。当我尝试使用注册用户登录时,我在登录页面上看到了这个 HTML

Authentication request could not be processed due to a system problem.

如果用户名或密码错误或者我没有填写字段,我会得到同样的错误。

使用 -vvv 详细显示启动 symfony 4 开发

2018-01-26T16:10:26+00:00 [info] Matched route "login".
2018-01-26T16:10:26+00:00 [info] Authentication request failed.
2018-01-26T16:10:26+00:00 [debug] Authentication failure, redirect triggered.
[Fri Jan 26 17:10:26 2018] 127.0.0.1:52250 [302]: /login
2018-01-26T16:10:26+00:00 [info] Matched route "login".
2018-01-26T16:10:26+00:00 [info] Populated the TokenStorage with an anonymous Token.
[Fri Jan 26 17:10:26 2018] 127.0.0.1:52252 [200]: /login

使用 Firefox 的网络检查器,登录帖子似乎返回 error 302 . 我不知道如何调试它,或者如何获取更多信息。


这是security.yaml

# config/packages/security.yaml                                                                           
security:                                                                                                 
  encoders:                                                                                               
    App\Entity\User:                                                                                      
      algorithm: bcrypt                                                                                   
  providers:                                                                                              
    our_db_provider:                                                                                      
      entity:                                                                                             
        class: App\Entity\User                                                                            
        property: username                                                                                
  firewalls:                                                                                              
    main:                                                                                                 
      provider: our_db_provider                                                                           
      pattern: ^/                                                                                         
      anonymous: ~                                                                                        
      form_login:                                                                                         
        login_path: login                                                                                 
        check_path: login                                                                                 
  access_control:                                                                                         
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }                                              
    - { path: ^/register$, role: IS_AUTHENTICATED_ANONYMOUSLY }                                           
    - { path: ^/, role: ROLE_USER }                                                                       
                                     

我不使用用户名,所以我将其从 User 类和注册 Controller 中删除,并按照文档的建议让 user.getUsername 返回用户电子邮件。

最佳答案

您的问题如下:

property: username

在安全 yaml 中,只需将其替换为电子邮件,因为您不使用用户界面中的用户名变量。

要找到答案,请使用网络帮助包分析返回 302 的请求。

关于php - 如何调试 symfony4 身份验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48465255/

相关文章:

php - Symfony 2 - PostgreSQL - SQLSTATE [42809] : Wrong object type: 7 ERROR: column notation

debugging - 在任意 scala 代码位置期间放入解释器

C/GDB : display contents of address

php - 如何在 PHP 中链接变量和字符串

php - 如果在 php mysql 中存在其他插入,如何更新

php - 插入选定的数据作为外键和 SQLSTATE[23000] : Integrity constraint violation: 1048

php - Symfony2/Doctrine2 Oracle 游标问题

JavaScript 表单验证未按预期工作,即使有错误也会提交表单

php - 生产环境中的 Symfony 2 Assetic css 和 js 404

调试 ARM 程序集(Neon 扩展)