在我的网站中,用户可以使用简单帐户(在我的网站中创建,MY_OWN_USER提供商配置,通过电子邮件选择用户)或使用Facebook登录(通过Fosfacebook捆绑包集成)登录。
当我尝试模拟用户时(附加链接"...?_switch_user=demo@demo.com',如 Symfony2 文档中所述)Symfony2 记录了这样的警告:
安全。警告:切换用户失败:"用户未在 Facebook 上进行身份验证"
我已经检查了Symfony\Component\Security\Http\Firewall\SwitchUserListener,看起来默认情况下它不是MY_OWN_USER提供者,而是fosfacebook提供者,它试图通过facebook_id选择用户(如果我附加链接与"...?_switch_user=FACEBOOK_ID' - 切换用户工作正常!
那么如何使SwitchUserListener获得MY_OWN_USER通过电子邮件而不是facebook ID选择用户的提供商呢?
在 security.yml
的防火墙配置中配置模拟时,可以指定应使用哪个提供程序来查找正在模拟的用户 (ref)。 例如:
switch_user:
provider: MY_OWN_USER
希望这有帮助!