Symfony 4 FOSUserBundle错误太多重定向

时间:2018-07-24 13:03:39

标签: php symfony redirect login fosuserbundle

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

打开窗口后,我可以在Google Chrome的developmanager中看到许多重定向。始终要/ login。好的,我已经尝试更改security.yml和其他在Internet上发现的奇怪的东西。 Nothin有效。我试图删除某些路由中的检查访问权限,只是测试它是否可以工作,但也不能。

我的完整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: /

有人也有这个问题吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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