php - 如何在 Symfony2 中使用 FOSFFacebookBundle 为通过 Facebook 登录创建一个单独的 url

标签 php symfony

我需要一个单独的 url 用于普通登录表单(用户名/密码),它已经存在于/login 上,还有一些 url,如/login-via-facebook 以通过 FOSFFacebookBundle oauth 程序登录。

现在我不明白如何通过 url 触发 oauth-facebook 程序,只有当我尝试访问“access_control”中列出的 url 时它才有效。

提前致谢!


@Matt,非常感谢您的解释! 我试着按照你的回答去做,但还是有问题,我没有提到我已经在使用 FOSUserBundle,

我的security.yml:

providers:
    chain_provider:
      providers: [fos_userbundle, fos_facebook]
    fos_userbundle:
        id: fos_user.user_manager
    fos_facebook:
        id: fos_facebook.auth 

firewalls:      
    public:
      pattern:   ^/
      fos_facebook:
        app_url: ""
        server_url: ""
        login_path: /login
        check_path: /login_check/facebook
        provider: fos_userbundle
      fos_userbundle:
        login_path: /login
        check_path: /login_check/form
        provider: fos_userbundle
      anonymous: true
      logout:    true`

所以,此时它抛出一个异常:InvalidConfigurationException: Unrecognized options "fos_userbundle"under "security.firewalls.public",如果我在公共(public)防火墙中将 fos_userbundle 更改为 form_login(但我应该这样做吗?),它会引发异常您必须在安全防火墙配置中使用 form_login 配置要由防火墙处理的检查路径。

最佳答案

您是否检查了您的 security.yml:

factories:
    - "%kernel.root_dir%/../vendor/bundles/FOS/FacebookBundle/Resources/config/security_factories.xml"

这很重要,因为它将对缺少的服务选项收费。

关于php - 如何在 Symfony2 中使用 FOSFFacebookBundle 为通过 Facebook 登录创建一个单独的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8165469/

相关文章:

PHP 如何查找字符串中以 $ 或 £ 符号开头的所有价格并将其替换为 Bootstrap 标签

php - 代码点火器/PHP : How to merge distinct arrays and make it unique into one array in query result

symfony - JMS 序列化器 : How to limit the depth of serialisation for an object graph

Symfony2 自定义控制台命令

php - 将多个隐藏表单字段传递到单个 UPDATE mysql 查询中

php - 使用 $.ajax() 响应 if else 语句

PHP 将错误的值写入数据库?

symfony - 在多个实体管理器上处理条令事务

javascript - 转换 Symfony2 PHP 实体对象以在 Javascript 中使用

logic - 使用 Symfony3 的引用程序集服务