試試這個:
firewalls:
secured_area:
pattern: ^/
#anonymous: ~
form_login:
check_path: /login_check
login_path: /login
logout:
path: /logout
login_firewall:
pattern: ^/login$
anonymous: ~
看到該文檔http://symfony.com/doc/current/book/security.html#book-security-common-pitfalls
務必登錄頁面並不安全
另外,請確保登錄頁面有不需要查看任何角色。例如,下面的配置 - 它要求對所有的URL(包括/登錄URL)的ROLE_ADMIN作用,會引起重定向循環:
access_control:
- { path: ^/, roles: ROLE_ADMIN }
卸下上的/登錄URL的訪問控制解決了這個問題:
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_ADMIN }
另外,如果您的防火牆不允許匿名用戶,你需要創建一個特殊的防火牆允許匿名用戶登錄頁面:
firewalls:
login_firewall:
pattern: ^/login$
anonymous: ~
secured_area:
pattern: ^/
form_login: ~
感謝我莫名其妙MISSE d那一節,這個問題現在有道理,非常感謝! – ChaoticLoki