【问题标题】:Symfony 4 FOSUserBundle Error too many redirectSymfony 4 FOSUserBundle 错误太多重定向
【发布时间】:2018-07-24 13:03:38
【问题描述】:

我在 Symfony 4 和 PHP 7.2 中使用 FriendsOfSymfony UserBundle。我已经完成了我的项目并想要部署它。所以我 1.更改服务器中的php版本 2.更改.env文件dev到日志 3. 只需将我所有的文件上传到服务器(没有开发缓存,它太大了)

打开窗口后,我可以在 Google Chrome 的开发管理器中看到许多重定向。总是/登录。好的,我已经尝试更改我在互联网上发现的 security.yml 和其他奇怪的东西。没有任何效果。我试图删除某些路线中的检查访问权限,并测试它是否有效,但也没有。

我的完整 security.yml 安全: 编码器: FOS\UserBundle\Model\UserInterface: bcrypt 提供者: fos_userbundle: id: fos_user.user_provider.username_email

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_token_generator: security.csrf.token_manager
        logout: true
        anonymous: true

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: ROLE_ADMIN }
    - { path: ^/resetting, role: ROLE_ADMIN }
    - { path: ^/admin/, role: ROLE_ADMIN }
    - { path: ^/profile, role: ROLE_USER }
    - { path: ^/profile/edit, role: ROLE_USER }

access_denied_url: /

大家也有这个问题吗?

【问题讨论】:

    标签: php symfony redirect login fosuserbundle


    【解决方案1】:

    我认为您的问题与您的库有关。 尝试composer installcomposer install --optimize-autoloader 并确保引导文件存在于var 中,并且var/ 可由Web 服务器用户写入。最后清空缓存bin/console cache:clear --env=prod

    【讨论】:

    • 好的,但让我明白。我不知道如何正确部署我的应用程序。我只是更改环境并通过FTPClient将文件上传到服务器。例如我的 Bootstrap 是由 CDN 添加的。我在var中没有它。这是错的吗?在 var 中,我只有日志和缓存,因为它的 symfony 4。在我的本地主机中,一切正常,但这个问题只在另一台服务器上。好的,我刚刚在本地完成了“composer install”、“composer install --optimize-autoloader”和“bin/console cache:clear --env=dev”和“bin/console cache:clear --env=prod”。然后我再次上传了所有文件。问题依然存在:(
    • 我在虚拟主机上的体验非常糟糕,因为您没有外壳访问权限,所以您只能上传文件。小心权限和隐藏文件!
    【解决方案2】:

    我认为导致此问题的原因是路由以斜杠结尾:/,也称为“尾部斜杠”。这个问题有三种解决方案:

    1. 确保您的所有路径都没有以斜杠结尾。这意味着您还必须覆盖 FOSUser 捆绑包的一些默认路由,因为有些路由以 / 结尾。
    2. 使用尾部斜杠重定向所有路由。 symfony 网站上有documentation on how to do this
    3. 升级到 symfony 4.1,带有尾部斜杠的路由会被自动重定向。

    【讨论】:

    • 我有:Symfony 4.1.1 (kernel: src, env: prod, debug: false) 我所有的路由(除了“/”主页)都不以斜杠“/”结尾.我敢打赌,这是某个地方的小错误,但在所有其他错误之后,FOS 不适合我......
    • 可能是因为服务器配置错误?我只是将基本路径更改为 /public。我表明重定向是 /login to / to /login to /
    • 我更改了主页路由,现在我知道它的登录重定向我到 "/" ,接下来它重定向到登录,因为我没有登录用户。但是为什么登录重定向到“/”?
    • 即使我更改了权限并在没有身份验证的情况下公开了一条路由,它仍然会重定向到登录页面。
    • 查看删除/取消注释access_denied_url: /行时​​会发生什么
    猜你喜欢
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 2017-01-23
    相关资源
    最近更新 更多