【问题标题】:oauth2orize with an API?oauth2orize 使用 API?
【发布时间】:2015-01-07 06:51:30
【问题描述】:

我正在尝试将 oauth2 服务器与 API 集成,但被卡住了。在示例中,使用了 3 种不同的策略(本地、基本、承载);对此有解释吗?如何创建客户端密钥和机密?是否有用户简单登录的工作示例?

【问题讨论】:

    标签: authentication oauth-2.0 passport.js


    【解决方案1】:

    是的,你很头疼:)。这不是一个容易实施的策略,但这里是令牌服务器等的完整工作示例:

    https://github.com/jaredhanson/oauth2orize

    我花了几个星期的时间来解决这个问题,而了解 Oauth2 规范本身对我很有帮助。有很多活动部件,简而言之如下:

    1. 用户联系服务提供商(即我的网络邮件)。
    2. Webmail 提供 Facebook 身份验证、用户点击和用户被重定向到 fb.com 上的 FB 身份验证端点
    3. FB 说,嘿,Webmail 想访问你的邮件,允许吗?用户说是的
    4. FB 使用“访问令牌”将用户重定向到 Webmail,返回到 Webmail 回调 URL
    5. Webmail,获取该访问令牌并使用它代表用户进行 Webmail 到 FB api 调用。

    正如您所看到的那样,您需要提供一个令牌服务器以确保 Webmail 在令牌服务器上注册为“已知提供者”,因此用户授予 Webmail 访问 FB 的权限代表他们。

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

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      为了将来参考,我将所有内容拼凑在一个小而易于理解的示例中。 oauth2api

      【讨论】:

        【解决方案3】:

        看看数字 4。 该示例很容易工作: https://github.com/scottksmith95/beerlocker

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

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

        【讨论】:

          猜你喜欢
          • 2015-06-11
          • 1970-01-01
          • 1970-01-01
          • 2016-10-22
          • 2014-12-14
          • 2014-12-05
          • 2014-10-08
          • 2012-11-20
          • 1970-01-01
          相关资源
          最近更新 更多