为了账号安全,请及时绑定邮箱和手机立即绑定

无效凭据身份验证问题 symfony 4

无效凭据身份验证问题 symfony 4

PHP
神不在的星期二 2021-06-02 10:59:38
从 symfony 4 开始,我想创建一个简单的身份验证表单。我创建了一个 User 类(标识符是电子邮件字段,而不是“用户名”,我创建了一个类控制器并配置了 security.yml 文件。但是当我转到表单页面并尝试登录(填写电子邮件/密码字段并单击提交按钮)时,我收到错误“凭据无效”。安全.yaml    encoders:        App\Entity\User:            algorithm: argon2i    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers    providers:        # used to reload user from session & other features (e.g. switch_user)        app_user_provider:            entity:                class: App\Entity\User                property: email    firewalls:        dev:            pattern: ^/(_(profiler|wdt)|css|images|js)/            security: false        main:            anonymous: true            guard:                authenticators:                    - App\Security\LoginFormAuthenticator            logout:                path: /logout        #ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]    # Easy way to control access for large sections of your site    # Note: Only the *first* access control that matches will be used    access_control:        - { path: ^/admin, roles: ROLE_ADMIN }        - { path: ^/profile, roles: ROLE_USER }
查看完整描述

2 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

encoders:

    App\Entity\User:

        algorithm: argon2i


# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers

providers:

    # used to reload user from session & other features (e.g. switch_user)

    app_user_provider:

        entity:

            class: App\Entity\User

            property: email


    firewalls:

        dev:

            pattern: ^/(_(profiler|wdt)|css|images|js)/

            security: false

        main:

            anonymous: true

            guard:

                authenticators:

                    - App\Security\LoginFormAuthenticator

            logout:

                path: /logout



        #ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]


    # Easy way to control access for large sections of your site

    # Note: Only the *first* access control that matches will be used

    access_control:

        - { path: ^/admin, roles: ROLE_ADMIN }

        - { path: ^/profile, roles: ROLE_USER }

您已经声明了一个提供者,app_user_provider:但它并未在您的防火墙内的任何地方使用。因此,在 中main:,尝试添加:


provider: app_user_provider

如果您遇到另一个问题,请尝试启用 form_login:


form_login:

    check_path: LOGIN_PATH

    login_path: LOGIN_PATH


查看完整回答
反对 回复 2021-06-04
  • 2 回答
  • 0 关注
  • 164 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信