我正在嘗試使用 Symfony 4 (nginx) 為登臺環境添加基本身份驗證。不幸的是,它的效果并不好。如果您在防火墻設置 ( security.yaml) 中定義基本身份驗證,它將自動使用防火墻中指定的提供程序。因此,Symfony 使用基本身份驗證作為實際登錄。集成一個簡單的基本身份驗證應該沒有那么難吧?我誤解了什么嗎?我的目標:兩個獨立的身份驗證(用戶之間沒有關聯)如果我通過基本身份驗證登錄,那么我應該能夠通過實際登錄頁面使用用戶實體登錄。該頁面的行為應該與您沒有登錄并且不使用基本身份驗證一樣。我試圖整合幾個防火墻......staging/security.yamlsecurity: providers: our_users: entity: { class: App\Entity\User\User, property: email } basic_auth: memory: users: system: { password: 'testpw', roles: ['ROLE_BASIC_AUTH'] } firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false staging: provider: basic_auth http_basic: realm: "My Basic Auth" main: anonymous: ~ form_login: provider: our_users login_path: my_login_path csrf_token_generator: security.csrf.token_manager default_target_path: homepage guard: provider: our_users authenticators: - App\Security\LoginFormAuthenticator access_control: - { path: ^/admin, role: ROLE_ADMIN } - { path: ^/login$, role: ROLE_BASIC_AUTH } - { path: ^/$, role: IS_AUTHENTICATED_REMEMBERED }我可以使用它通過 Basic Auth 對自己進行身份驗證,但我在臨時防火墻中。當我現在嘗試登錄時,它總是失敗。我認為發生這種情況是因為此防火墻中的表單未分配給引用用戶實體的身份驗證器。而且它不會自動將防火墻切換到正確的防火墻。如果您在頁面上使用用戶系統,實現基本身份驗證的最佳實踐是什么?感謝您的建議!編輯:如果有人遇到同樣的問題:我在我的案例中發現了問題..看看接受的答案的響應。感謝幫助!
使用用戶實體進行身份驗證時如何在 Symfony 4 中使用獨立的基本身份驗證
慕碼人8056858
2022-06-11 09:58:22