【问题标题】:Using Passport module in Nodejs for OAuth在 Nodejs 中使用 Passport 模块进行 OAuth
【发布时间】:2015-02-20 10:26:13
【问题描述】:

我是 Node.js、OAuth 的新手。

我正在使用 Nodejs 开发一个 Web 应用程序。我的应用程序正在与第三方 API 交互以获取数据。根据 API 文档“此第三方 API 中的所有方法都在请求标头中采用 OAUTH 身份验证参数”(仅此而已)

我决定使用 Node.JS 的 Passport 模块来实现这一点(http://passportjs.org/guide/oauth/)。

我的问题是我无法理解如何进行此操作。假设我们有一个 API 方法“http://api.travel/getAllLocation”,它返回用户可以旅行的所有位置。

有人可以在这里提供帮助,提供如何使用 NodeJS、Passport 从 web 服务获取所需数据的示例。

[更新] 找到了这个试图达到同样目的的答案。但是如何使用 Passport 达到同样的效果 How to send the OAuth request in Node

【问题讨论】:

  • 你试过passportjs网站上的例子吗?您指向 api 的链接也没有正确指向。
  • 谢谢凯文。 API URL 仅作为示例。这是无效的。

标签: node.js oauth


【解决方案1】:

在我看来,您好像在尝试使用 Oauth 访问其他人的 API,对吗?如果是这种情况,您需要通过以下方式与 API 交互:

  • 在给定 API 密钥的情况下请求 Oauth 令牌。
  • 将该令牌放入您的 HTTP 授权标头中,以便第三方 API 可以识别和验证您。

您可以通过命令行使用 cURL 请求 API 令牌(通常)的方式如下:

$ curl -v --user api_key_id:api_key_secret -X POST https://api.something.com/v1/auth?grant_type=client_credentials

这通常会返回某种令牌(希望是 JSON 网络令牌!),然后您可以使用它来识别自己。这是一个正确指定令牌的示例 cURL 请求:

$ curl -v -H "Authorization: Bearer tokenhere" https://api.something.com/v1/blah

使用 Node,您可以使用 https://github.com/request/request 库来制作这些 HTTP 请求。同样,如果您将我们链接到确切的文档,我可以进一步帮助您 =)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 2017-10-27
    • 2019-03-02
    • 2015-09-21
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    相关资源
    最近更新 更多