【发布时间】:2015-01-07 06:51:30
【问题描述】:
我正在尝试将 oauth2 服务器与 API 集成,但被卡住了。在示例中,使用了 3 种不同的策略(本地、基本、承载);对此有解释吗?如何创建客户端密钥和机密?是否有用户简单登录的工作示例?
【问题讨论】:
标签: authentication oauth-2.0 passport.js
我正在尝试将 oauth2 服务器与 API 集成,但被卡住了。在示例中,使用了 3 种不同的策略(本地、基本、承载);对此有解释吗?如何创建客户端密钥和机密?是否有用户简单登录的工作示例?
【问题讨论】:
标签: authentication oauth-2.0 passport.js
是的,你很头疼:)。这不是一个容易实施的策略,但这里是令牌服务器等的完整工作示例:
https://github.com/jaredhanson/oauth2orize
我花了几个星期的时间来解决这个问题,而了解 Oauth2 规范本身对我很有帮助。有很多活动部件,简而言之如下:
正如您所看到的那样,您需要提供一个令牌服务器以确保 Webmail 在令牌服务器上注册为“已知提供者”,因此用户授予 Webmail 访问 FB 的权限代表他们。
在您的 Webmail 端,您不会使用任何本地/基本/承载策略。您将使用 passport-oauth2 策略。 Bearer 是一种有效的 API 策略,类似于提供 API 密钥。如果您不需要用户权限来授予对 API 的访问权限,我强烈建议您使用 passport-http-bearer 策略,这样您就不用头疼了。
希望对你有帮助。
【讨论】:
为了将来参考,我将所有内容拼凑在一个小而易于理解的示例中。 oauth2api
【讨论】:
看看数字 4。 该示例很容易工作: https://github.com/scottksmith95/beerlocker
使用 postman 并创建测试用户并发布到 localhost:3000/api/users 用户名你的名字 密码 yourPass
然后,在测试 api 时使用它来登录。
【讨论】: