我需要一个单独的 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/