Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Facebook+;使用symfony2进行用户绑定身份验证_Php_Facebook_Symfony - Fatal编程技术网

Php Facebook+;使用symfony2进行用户绑定身份验证

Php Facebook+;使用symfony2进行用户绑定身份验证,php,facebook,symfony,Php,Facebook,Symfony,我正在尝试通过facebook或symfony2上的userbundle对我的用户进行身份验证 以下是我到目前为止所做的工作(它很有效,尽管不是我想要的): 该配置的问题在于,当用户未登录时,他会被重定向到/login(form_login),而我希望他在默认情况下被重定向到Facebook身份验证 我已经尝试过简单地删除表单登录,但是如果我访问/login(这是我希望用户在facebook之外登录的方式),它不知道提交登录表单的/login\u检查路径 也许连锁店供应商是一个解决方案?我也没有

我正在尝试通过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