使用Node.js实现OAuth2密码授权

5
我正在设计一个网络应用程序,主要分为以下两部分:
  1. 网站(UI):Node JS Express应用程序将作为www.mysite.com托管。
  2. Rest API:业务逻辑(身份验证、授权、业务逻辑),将作为某个不同的域托管,例如api.mysite.com。
我想为这个应用程序实现OAuth2。我阅读了OAuth2并理解了它的各种流程,根据我的理解,我得出结论:“资源所有者密码凭证”流程是一种方法,因为客户端和服务都属于我,用户也将直接在我的应用程序中注册,因此他们将提供用户名和密码。
我对“资源所有者密码凭证”流程进行了大量研究,但这个流程很少被讨论和记录。我几乎没有任何关于如何在我的应用程序中实现此流程的想法。我正在使用Node JS开发网站和Rest API。请指导我如何实现这个?任何演示文稿、文档都会有所帮助。 提前感谢!

1
你能否使用资源所有者密码凭证方式取得进展?你可以分享一下你使用的开源库是什么。 - j10
1个回答

2
你说得对。这方面的文献很少,而且经常被错误地解释。大多数关于该流程的解释没有指出,该流程有两种不同的情况。
如果你有一个SPA或类似的开放应用程序,则不需要使用ROPC流程来获取客户端id或客户端密钥。因为任何人都可以读取它,而且RFC也不要求这样做。
你的情况涉及到没有委派的2-legged oauth。
以下是一篇非常好的文章,介绍了如何保护ROPC流程: http://andyfiedler.com/2014/09/how-secure-is-the-oauth2-resource-owner-password-credential-flow-for-single-page-apps 希望能帮到你,我目前也在纠结同样的问题。

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