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



在我的网站中,用户可以使用简单帐户(在我的网站中创建,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

希望这有帮助!

最新更新