Php Facebook+;使用symfony2进行用户绑定身份验证
我正在尝试通过facebook或symfony2上的userbundle对我的用户进行身份验证 以下是我到目前为止所做的工作(它很有效,尽管不是我想要的): 该配置的问题在于,当用户未登录时,他会被重定向到/login(form_login),而我希望他在默认情况下被重定向到Facebook身份验证 我已经尝试过简单地删除表单登录,但是如果我访问/login(这是我希望用户在facebook之外登录的方式),它不知道提交登录表单的/login\u检查路径Php Facebook+;使用symfony2进行用户绑定身份验证,php,facebook,symfony,Php,Facebook,Symfony,我正在尝试通过facebook或symfony2上的userbundle对我的用户进行身份验证 以下是我到目前为止所做的工作(它很有效,尽管不是我想要的): 该配置的问题在于,当用户未登录时,他会被重定向到/login(form_login),而我希望他在默认情况下被重定向到Facebook身份验证 我已经尝试过简单地删除表单登录,但是如果我访问/login(这是我希望用户在facebook之外登录的方式),它不知道提交登录表单的/login\u检查路径 也许连锁店供应商是一个解决方案?我也没有
也许连锁店供应商是一个解决方案?我也没有让它工作您应该为表单登录添加fos\u userbundle提供程序(并保留其余配置):
我没有挖掘太多,但我认为Symfony2在这种情况下会自动创建一个链接提供者。一个简单且可能更有用的选项是在登录页面中显示所有登录选项(包括facebook、twitter、open id或任何您想使用的选项)您还可以将您要查看的内容写入其中,用户是直接进入/登录表单还是通过重定向。链提供者确实是解决此问题的方法。以下是security.yml配置的外观:
providers:
my_project.chain_provider:
chain:
providers: [fos_userbundle, my_project.facebook_provider]
fos_userbundle:
id: fos_user.user_provider.username_email
my_project.facebook_provider:
id: my_project.user_provider.facebook
当然,您需要定义自己的facebook提供商,如所述+1。我也有过这个问题;希望看到一个好的解决方案。此解决方案是否有任何帮助->
form_login:
provider: fos_userbundle
providers:
my_project.chain_provider:
chain:
providers: [fos_userbundle, my_project.facebook_provider]
fos_userbundle:
id: fos_user.user_provider.username_email
my_project.facebook_provider:
id: my_project.user_provider.facebook