2 回答

TA貢獻1817條經驗 獲得超14個贊
我想出了怎么做。我有一個防火墻,每次我匿名連接時都會將我重定向到登錄頁面。
這就是我正在談論的防火墻:
backend:
pattern: ^/
provider: fos_userbundle
form_login:
csrf_token_generator: security.csrf.token_manager
login_path: /login
check_path: /login_check
default_target_path: dashboard
# success_handler: my_user_log.component.authentication.handler.login_success_handler
logout:
path: /logout
target: /login
# success_handler: my_user_log.component.authentication.handler.logout_success_handler # redirect, no_redirect, redirect_without_path
anonymous: true
這是我必須添加的防火墻:
api_thankyou:
pattern: ^/mail
security: false

TA貢獻1799條經驗 獲得超6個贊
請注意,Symfony 會逐一記錄每個 access_control。一旦找到匹配的,它就會使用該匹配并停止。因此,當到達 時^/,它會注意到所有頁面都已通過身份驗證并重定向到登錄頁面
為了避免這種情況,thankYou 頁面的身份驗證路徑應該位于/^訪問控制之上:
access_control:
# - { path: ^/dashBoard, role: IS_AUTHENTICATED_REMEMBERED }
# This is the Thank you page
- { path: ^/thankYou, role: IS_AUTHENTICATED_ANONYMOUSLY}
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY, allow_if: "not has_role('ROLE_USER')" }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/faq/application, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/faq/category, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: IS_AUTHENTICATED_REMEMBERED }
- { path: ^/api/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api/getToken, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api, roles: IS_AUTHENTICATED_FULLY }
- 2 回答
- 0 關注
- 132 瀏覽
添加回答
舉報