0
這真的是標題說的 - 我不明白爲什麼用戶切換不起作用。 在我security.yml我:Symfony FOS用戶包 - 切換用戶失敗:「用戶名」*「不存在」。
firewalls:
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
form_login:
provider: fos_userbundle # using FOSUserBundle for user authentication
check_path: fos_user_security_check
login_path: fos_user_security_login
csrf_token_generator: security.csrf.token_manager # CSRF token - can be changed?
default_target_path: default_logged_in_target # default route to go to after login
# default_target_path: fos_user_profile_show
always_use_default_target_path: true # ignore the requested url and allways go to default route after login
logout:
path: fos_user_security_logout
target: default_loged_out_target
logout: true
anonymous: true
switch_user: true
調用URL
[ProjectPath]/account?_switch_user=testuser
導致錯誤
Switch User failed: "Username "testuser" does not exist."
「testuser的」 不過是一個完全有效的用戶,我可以登錄在以標準方式登錄時與該用戶正常地進行通信。 我使用「_switch_user」調用URL時登錄的用戶具有角色「ROLE_ALLOWED_TO_SWITCH」 - 但這似乎不成問題。 我被困在這裏。 任何提示,非常感謝。
編輯:
的堆棧跟蹤顯示,在 「SwitchUserListener.php」 調用
$this->tokenStorage->setToken($this->attemptSwitchUser($request));
失敗並且釣到導致給定的錯誤。
我有一個類似的問題,你的提示幫助我解決這個問題。我有一個空的in_memory提供程序(用於測試)和另一個提供程序。剛剛刪除了in_memory提供程序,它工作。看起來默認情況下,第一個提供程序用於獲取用戶... –