我正在使用Symfony 3.3和FOSUserBundle 2.0。我無法使重置密碼功能正常工作。我去請求重置頁面,輸入電子郵件或用戶名,然後點擊提交,它會將我重定向到登錄頁面,而不會在視圖中顯示任何錯誤。 我看着日誌,它給我這個錯誤:FOSUserBundle重置密碼不適用於模擬用戶配置
security.DEBUG: Access denied, the user is not fully authenticated; redirecting to authentication entry point. {"exception":"[object] (Symfony\\Component\\Security\\Core\\Exception\\AccessDeniedException(code: 403): Access Denied. at .../vendor/symfony/symfony/src/Symfony/Component/Security/Http/Firewall/SwitchUserListener.php:125)"} []
Security.yml:
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
{...}
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
default_target_path: /verifInit
logout: true
anonymous: true
switch_user:
role: ROLE_ADMIN
provider: fos_userbundle
parameter: username
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
providers:
in_memory:
memory:
users:
user: { password: userpass, roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
fos_userbundle:
id: fos_user.user_provider.username
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
當我刪除security.yml switch_user部分,它的工作好。你知道爲什麼嗎?我需要我的項目的switch_user功能,所以我不能刪除它。
你可以發佈security.yml的內容嗎?和/或您是否在負責此操作的控制器中添加了任何與Auth相關的代碼? – Vamsi
我編輯了我的問題 –
您沒有更改用戶實體? –