【发布时间】:2013-06-01 13:56:51
【问题描述】:
对于如何使用我的 REST API 正确、安全地对用户进行身份验证,以及如何使用其他 OAuth 2.0 提供商(例如 Facebook、Google 等)进行身份验证,我有点困惑。
场景
用户与应该使用我的 REST API 的 Web 应用程序进行交互。用户应该能够使用用户名/密码以及使用 Facebook 等第三方服务登录并执行 CRUD 操作。我将使用 SSL 加密网站和 API 的流量。
在不考虑第 3 方登录服务的情况下,通过研究 SO 上已经提出的各种问题,我想到了如图所示处理用户身份验证。
技术和当前理念
REST API 是使用 NodeJS 和 Express 使用 JS 编写的。通过另一个 NodeJS 实例提供的 WebApp 主要是带有模板的 AngularJS,它使用 REST API。
我目前的想法是让 WebApp 处理登录序列,并让 Facebook 使用回调将其令牌保存在我的数据库中。但是这个解决方案闻起来太麻烦了!
问题
- 图片中描述的身份验证顺序是否正确?
- 上述身份验证顺序与 OAuth2.0 中的资源所有者密码凭证流程相比如何?用 OAuth2.0 代替它值得吗?
- 如何通过 3rd 方(即 Facebook)集成登录?有什么建议或(更好的)例子吗?
参考文献
Login with facebook and using oauth 2.0 for authentication of REST api calls
还有很多其他人在这里 :)
【问题讨论】:
标签: node.js rest authentication oauth-2.0 passport.js