我在symfony 2.6项目中使用fosuserbundle进行登录和注册。现在我想允许用户通过脸书或谷歌帐户登录。
我想使用Oauth2的朋友库,从这里开始https://packagist.org/packages/friendsofsymfony/oauth2-php
我已经在composer.phar和更新的供应商中使用"friendsofsymfony/oauth2-php":"1.1.*@dev"安装了库。但我找不到可以显示登录中配置和使用步骤的文档。
它应该与fosuserbundle一起使用。有人能建议我在哪里可以获得步骤吗?如何在我的项目中使用Oauth2库?
您可以使用HWIOAuthBundle登录facebook或谷歌以及更多社交网络。以下是关于如何在应用程序中设置此捆绑包的教程:https://gist.github.com/danvbe/4476697
此外,如果你使用这个捆绑包,你应该查看我的要点:https://gist.github.com/antoinemineau/8836621#file-fosubuserprovider-php-L47,我添加了一个if语句,如果api没有按预期响应,该语句将阻止执行代码。
以下是如何通过Facebook登录的示例https://github.com/stfalcon-studio/lost-and-found
它使用HWIOAuthBundle+FOSUserBundle+自定义用户提供程序
您可以很容易地添加谷歌或HWIOAuthBundle中的任何其他资源所有者。但是,您还需要重写一个位用户提供程序。
这个答案是正确的:https://stackoverflow.com/a/28879098/2400373
我使用本手册进行集成:https://gist.github.com/danvbe/4476697
但对于Symfony3来说,有必要进行两次更改。第一:
在文件的代码中:Symfony3
上的services.yml
是其他位置,正确的位置是://app/config/services.yml
,并更改此行:
arguments: [@fos_user.user_manager,{facebook: facebook_id, google: google_id}]
为此:
arguments: ['@fos_user.user_manager',{facebook: facebook_id, google: google_id}]
第二个更改在文件中://app/config/routing.yml
更改此行:
pattern: /login/check-facebook
为此:
path: /login/facebook