如何使用 Facebook 登录名连接 Javascript 前端,并通过 OAuth 2.0 连接 PHP 后端



>我有以下元素:

  • 一个PHP后端,提供用OAuth保护的RESTful API(FOSOAuthServerBundle with Symfony 2(
  • 一个Javascript前端(AngularJS(,即OAuth客户端

我的目标是在前端为用户提供一个身份验证页面,允许他们通过 Javascript 登录和访问 API。

根据这篇文章,我通过以下方式执行此操作:http://www.bubblecode.net/fr/2013/03/10/comprendre-oauth2/(不幸的是是法语,但如果您滚动一下,解释标准赠款流程的图表是英文的(:

  1. 我提供了一个询问用户凭据(登录名和密码(的表格
  2. 我使用 OAuth 隐式授权将用户凭据交换为访问令牌。

到目前为止,一切都应该(几乎(工作得很好。


现在,这个问题的原因是我想将Facebook Login添加到我的前端。每次用户在我的前端注册Facebook Login时,这将给我一个Facebook访问令牌。理想情况下,我的后端应该:

  • 获取此令牌
  • 根据Facebook PHP API进行检查以对其进行验证
  • 从Facebook PHP API检索用户Facebook UID
  • 将其与我的应用注册用户的比较
  • 返回访问令牌(这次是针对我自己的应用程序,而不是Facebook(,当且仅当Facebook UID与我的注册应用程序用户之一匹配时。

我的问题是:在这样的用例中,我应该使用哪种类型的授权在我的前端和后端之间进行交易(考虑到从 Javascript 客户端提供我的客户端密钥当然是不可接受的(?

实际上,我设法找到了解决方案。应根据隐式授权(其中不询问客户端密码(设计自定义授权来解决此问题。

但是,FOSOauthServerBundle尚未实现基于公共客户端的授权(有关更多详细信息,请参阅 https://github.com/FriendsOfSymfony/FOSOAuthServerBundle/issues/266(。

相关内容

  • 没有找到相关文章