Symfony2:使用两个不同的用户提供程序登录网站时无法模仿用户

时间:2012-10-16 14:07:18

标签: symfony impersonation fosfacebookbundle

在我的网站中,用户可以使用简单帐户登录(在我的网站中创建,配置MY_OWN_USER提供商,通过电子邮件选择用户)或使用Facebook登录(通过fosfacebook捆绑集成)。

当我试图冒充用户时(附加链接'...?_ switch_user=demo@demo.com',如Symfony2 documentation中所述),Symfony2会记录此警告:

security.WARNING:切换用户失败:“用户未在Facebook上进行身份验证”

我已经检查了 Symfony \ Component \ Security \ Http \ Firewall \ SwitchUserListener ,看起来默认它不是MY_OWN_USER提供者,而是fosfacebook提供者试图通过facebook_id选择用户(如果我追加链接使用'...?_ switch_user = FACEBOOK_ID' - 切换用户正常工作!)

那么如何让SwitchUserListener获得MY_OWN_USER提供者,通过电子邮件选择用户而不是facebook id?

1 个答案:

答案 0 :(得分:1)

security.yml中的防火墙配置中配置模拟时,您可以指定应使用哪个提供程序来查找被模拟的用户(ref)。例如:

switch_user:
    provider: MY_OWN_USER

希望这有帮助!