通过我的REST API和Facebook进行用户身份验证

8
我对如何正确和安全地使用我的REST API进行用户身份验证并提供使用其他OAuth 2.0提供商(例如Facebook,Google等)进行身份验证的选项有些困惑。 场景 用户与Web应用程序交互,该应用程序应使用我的REST API。用户应能够使用用户名/密码和使用第三方服务(如Facebook)登录并执行CRUD操作。我将使用SSL加密网站和API的流量。
在不考虑第三方登录服务的情况下,并通过研究已经在SO上提出的各种问题,我考虑处理用户身份验证,如图片所示。

Authentication Sequence

技术和当前想法

REST API使用NodeJS和Express编写的JS。通过另一个NodeJS实例提供的WebApp主要使用AngularJS模板来消耗REST API。

我的当前想法是让WebApp处理登录序列,并让Facebook使用回调在我的DB中保存他们的token。但这个解决方案太过于变通了!

问题

  1. 图像中描述的身份验证序列是否正确?
  2. 与OAuth2.0中的资源所有者密码凭证流相比,上述身份验证序列如何?值得使用OAuth2.0而不是它吗?
  3. 如何通过第三方(例如Facebook)进行登录?有任何建议或更好的示例吗?

参考文献

passport.js RESTful auth

使用oauth 2.0登录Facebook并对REST api调用进行身份验证

还有其他很多关于SO的文章 :)

1个回答

0

我的意见..

  1. 这个过程对我来说看起来不错..我会在每次登录时重新发行令牌,并将其保存在数据库中,以便可以轻松地撤销令牌。

使用 PassportJS。它支持 OAuth 流程,并支持许多第三方集成,例如 FB、Twitter、Github 等等... 而且由于它是一个 nodejs 中间件.. 所以它的集成将非常紧密地与您的应用程序结合在一起..


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接