使用节点 js 授予 OAuth2 密码

D D*_*ane 5 node.js oauth-2.0 oauth2

我正在设计一个web应用程序,主要分为以下两部分

  1. 网站(UI):Node JS Express 应用程序将托管为 www.mysite.com
  2. Rest API:业务逻辑(认证、授权、业务逻辑)并将托管为一些不同的域,例如 api.mysite.com

我想为此应用程序实现OAuth2。我通读了 OAuth2 并了解了它的各种流程,根据我的理解,我得出结论,“资源所有者密码凭据”流程是一种方法,因为客户端和服务都属于我,用户也将直接向我的应用程序注册,因此他们将提供用户名和密码。

我对“资源所有者密码凭据”流程进行了大量研究,但此流程的讨论和记录很少。我几乎没有接近零的想法,我应该如何在我的应用程序中实现这个流程。我正在 Node JS 中开发网站和 Rest API。请指导我如何实施?任何演示、文档都会有所帮助。

提前致谢 !

Ste*_*fan 2

你是对的。它的记录很少,而且经常被错误地解释。该流程的大多数解释都没有指出该流程有两种不同的情况。

如果您有 SPA 或类似的开放应用程序,您不希望在 ROPC 流中拥有客户端 ID 或客户端密钥。因为,每个人都可以读懂它。此外,RFC 中也没有要求。

你的情况是关于没有授权的两条腿的认证。

这是一篇关于如何保护 ROPC 流的非常好的文章: http://andyfiedler.com/2014/09/how-secure-is-the-oauth2-resource-owner-password-credential-flow-for-single-页面应用程序

希望有帮助,我目前正在努力解决同样的问题。