Symfony用户登录链接链用户提供商

vuktfyat  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(139)

我正在为我的symfony项目创建PasswordLess api,方法如下:https://symfony.com/doc/5.4/security/login_link.html
我有多个防火墙:

firewalls:
        dev:
            pattern:                        ^/(_(profiler|wdt)|css|images|js)/
            security:                       false

        install:
            pattern:                        ^/installer
            security:                       false
            anonymous:                      true

        login:
            pattern:                        ^/user/(login|reset-request|send-email|check-email|auto-login)$
            provider:                       chain_provider
            anonymous:                      true
            #login_link:                    # ERROR HERE
            #    check_route: login_check
            #    signature_properties: ['id']

        main:
            pattern:                        ^/
            provider:                       chain_provider
            form_login:
                csrf_token_generator:       security.csrf.token_manager
                check_path:                 main_security_check
                login_path:                 main_security_login
                use_forward:                true
            logout:
                path:                       main_security_logout
            remember_me:
                secret:                     "%env(APP_SECRET)%"
                name:                       BAPRM
                lifetime:                   1209600   # stay logged for two weeks
                samesite:                   'lax'
            anonymous:                      false

但是当我尝试配置它时,我得到了这个错误:

The old authentication system is not supported with login_link.

我怎么才能让它工作,我在这里错过了什么。
我正在使用Symfony 5.4

  • 谢谢-谢谢
mxg2im7a

mxg2im7a1#

documentation中所述,您必须启用新的验证器系统才能使用登录链接。
只有在使用验证器系统时,Symfony才支持登录链接。在使用此验证器之前,请确保您已通过enable_authenticator_manager启用了它:false在您的security.yaml文件中。
因此,修改security.yaml以添加:
enable_authenticator_manager: true
如果您不使用它,例如,如果您使用guards,则必须将其替换为new system

相关问题