Authentication oauth2orize是否使用API?

Authentication oauth2orize是否使用API?,authentication,oauth-2.0,passport.js,Authentication,Oauth 2.0,Passport.js,我试图将oauth2服务器与API集成在一起,但遇到了严重的问题。在本例中,使用了3种不同的策略(本地、基本、承载);有什么解释吗?如何创建客户端密钥和机密?是否有一个简单的用户登录的工作示例?是的,您会头疼:)。这不是一个容易实现的策略,但下面是令牌服务器等的完整工作示例: 我花了好几个星期的时间才了解了它,帮助很大的是理解Oauth2规范本身。有许多活动部件,简而言之如下: 用户联系服务提供商(即我的网络邮件) Webmail提供Facebook身份验证、用户点击和用户重定向到FB.com

我试图将oauth2服务器与API集成在一起,但遇到了严重的问题。在本例中,使用了3种不同的策略(本地、基本、承载);有什么解释吗?如何创建客户端密钥和机密?是否有一个简单的用户登录的工作示例?

是的,您会头疼:)。这不是一个容易实现的策略,但下面是令牌服务器等的完整工作示例:

我花了好几个星期的时间才了解了它,帮助很大的是理解Oauth2规范本身。有许多活动部件,简而言之如下:

  • 用户联系服务提供商(即我的网络邮件)
  • Webmail提供Facebook身份验证、用户点击和用户重定向到FB.com上的FB身份验证端点
  • FB说,嘿,Webmail想访问你的邮件,允许吗?用户说是的
  • FB使用“访问令牌”将用户重定向到Webmail,返回到Webmail回调URL
  • Webmail,获取该访问令牌,并使用它代表用户进行Webmail到FB api调用
  • 正如您所看到的,复杂的情况似乎是需要一个令牌服务器,您需要提供该服务器以确保Webmail在令牌服务器上注册为“已知提供者”,这样用户就可以授予Webmail代表其访问FB的权限

    在您的网络邮件方面,您不会使用任何本地/基本/承载策略。您将使用passport-oauth2策略。承载是一种有效的API策略,类似于提供API密钥。如果您不需要用户权限来授予对API的访问权限,我强烈建议您使用passport http承载策略,这样您就不会感到头痛了


    我希望它能有所帮助。

    为了将来的参考,我用一个小的、可以理解的例子把所有东西拼凑在一起

    看看数字4。 该示例非常容易使用:

    使用postman并创建发布到localhost:3000/api/users的测试用户 用户名你的名字 密码你的通行证

    然后,在测试api时使用它登录