我正在尝试将oauth2服务器与API集成在一起,并被严重卡住。在该示例中,使用了3种不同的策略(本地,基本,承载)。有什么解释吗?如何创建客户端 key 和 secret ?有一个简单的用户登录示例吗?

最佳答案

是的,您很头疼:)。这不是一个容易实现的策略,但这是 token 服务器等的完整示例。

https://github.com/jaredhanson/oauth2orize

我花了好几个星期来解决这个问题,对自己了解Oauth2规范很有帮助。有很多运动部件,简而言之如下:

  • 用户与服务提供商联系(即我的网络邮件)。
  • Webmail提供fb.com上的Facebook身份验证,用户点击和用户重定向到FB auth端点
  • FB说,嘿,Webmail要访问您的邮件,允许吗?用户说是,然后
  • FB使用“访问 token ”将用户重定向到Webmail,重定向回Webmail回调URL
  • Webmail,获取该访问 token ,并使用该 token 代表用户对FB api进行Webmail调用。

  • 如您所见,出现了一些复杂情况,需要提供 token 服务器,以确保Webmail已在 token 服务器上注册为“已知提供者”,因此用户向Webmail授予了代表他们访问FB的权限。

    在Webmail方面,您将不会使用任何本地/基本/承载策略。您将使用passport-oauth2策略。承载是类似于提供API key 的有效API策略。如果您不需要用户权限来授予对API的访问权限,我强烈建议您使用“passport-http-bearer”策略,并且不会感到头疼。

    希望对您有所帮助。

    10-05 21:24