oauth2orize与API?

时间:2014-04-19 18:49:45

标签: authentication oauth-2.0 passport.js

我试图将oauth2服务器与API集成,并且非常困难。在这个例子中,使用了3种不同的策略(本地,基本,持票人);对此有解释吗?如何创建客户端密钥和机密?是否有一个简单登录用户的工作示例?

3 个答案:

答案 0 :(得分:5)

是的,你很头疼:)。这不是一个易于实现的策略,但这里是令牌服务器的完整工作示例,依此类推:

https://github.com/jaredhanson/oauth2orize

我花了几个星期的时间来绕过它,有很多帮助了解Oauth2规格本身。有许多活动部件,简而言之如下:

  1. 用户联系服务提供商(即我的网络邮件)。
  2. Webmail提供Facebook身份验证,用户点击和用户被重定向到fb.com上的FB auth端点
  3. FB说,嘿,Webmail想要访问你的邮件,允许吗?用户说是,然后
  4. FB使用授予Webmail的“访问令牌”重定向用户,返回webmail回调URL
  5. Webmail,获取该Access令牌并使用它代表用户将Webmail发送到FB api调用。
  6. 正如您所看到的,复杂性似乎需要您需要提供的令牌服务器,以确保Webmail在令牌服务器上注册为“已知提供商”,因此用户授予Webmail访问FB的权限他们代表。

    在您的Webmail端,您不会使用任何本地/基本/承载策略。您将使用passport-oauth2策略。承载是一种有效的API策略,类似于呈现API密钥。如果您不需要用户权限来授予对API的访问权限,我强烈建议您使用passport-http-bearer策略并且没有头痛。

    我希望它有所帮助。

答案 1 :(得分:4)

为了将来的参考,我在一个小的,可理解的例子中修补了所有内容。 oauth2api

答案 2 :(得分:3)

看看4号。 该示例非常容易: https://github.com/scottksmith95/beerlocker

使用邮递员并创建测试用户并发布到localhost:3000 / api / users 用户名yourName 密码yourPass

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