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

从 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 }



神不在的星期二
浏览 165回答 2
2回答

杨魅力

encoders:    App\Entity\User:        algorithm: argon2i# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providersproviders:    # 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
打开App,查看更多内容
随时随地看视频慕课网APP