Symfony:security.firewalls.main.form_login.default_target_path 被忽略

时间:2021-03-12 12:58:30

标签: symfony redirect

我正在 Symfony 5 中创建我的第一个应用程序,我使用 make 命令创建了身份验证系统,并且我试图让我的应用程序在用户登录时重定向到 /home 但我一直无法。

我已阅读我必须在 security.yaml 中设置参数 security.firewalls.main.form_login.default_target_path

https://symfony.com/doc/current/security/form_login.html#redirecting-after-success

我知道这个文件正在被读取,因为如果我故意拼错它,应用程序会抛出一个错误,但我在那个字段上放了什么并不重要,登录后我总是被重定向到根页面 /

为什么会这样?登录后如何将用户重定向到 home 路由?

作为附加信息:

  • 控制器的登录操作在生成时具有默认代码。
  • home 路线存在并指向 /home

这是我的security.yaml的内容:

security:
    encoders:
        App\Entity\User:
            algorithm: auto

    providers:
        app_user_provider:
            entity:
                class: App\Entity\User
                property: username
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            anonymous: true
            lazy: true
            provider: app_user_provider
            guard:
                authenticators:
                    - App\Security\AppAuthenticator
            logout:
                path: app_logout

            form_login:
                default_target_path:  home

    access_control:
        - { path: '^/proyecto', roles: IS_AUTHENTICATED_FULLY }

1 个答案:

答案 0 :(得分:0)

感谢@Cerad,我发现我混淆了两种不同的身份验证方法。

我必须检查 AppAuthenticator 类的 onAuthenticationSuccess 方法。在那里我明确重定向到 /

在那个方法中我可以定义重定向路径