如何利用请求承诺从Oauth服务器请求OAuth2令牌并将令牌包含在请求标头中

时间:2016-03-03 13:21:50

标签: javascript node.js

免责声明:我是非常新的Node开发人员,也是javascript的新手。我在Java,C ++和框架方面有很多经验,所以我理解开发范例,但我并不熟悉JS的结构或设计模式。我很快就完成了这项工作:/

我们的节点应用程序需要向需要OAuth2身份验证的服务发出请求。

我们的应用可以成功请求和接收OAuth承载令牌,并且还可以使用该令牌向服务发出请求。但它的一切都非常分离。

我想做的是将一个截取者连接到请求模块(我们使用请求保证),这个模块被称为:

  1. 请求模块在调用请求之前将控制权传递给我们 服务
  2. 我们获取oauth令牌标头的缓存副本或请求新令牌并构建标头(并缓存它)
  3. 我们将新的oauth令牌标头插入到请求
  4. 然后将控制权返回给请求模块以进行正常执行
  5. 我查看了请求承诺,并且看到它在挂钩'请求'模块方面做了类似的事情。看看nodejs的'request'模块,看起来可能有一个用于添加OAuth头的钩子。

    我的问题是如果它存在,我如何利用钩子。这是最好的方法吗?最后,是否有针对此特定案例的示例/模式。我在节点中看到了很多关于OAuth的例子,但大多数是用于验证传入的客户端,而不是传出的请求,我发现的示例与我们已经拥有的解码过程类似。

    非常感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:-1)

我没有在请求承诺模块(https://www.npmjs.com/package/request-promise)中找到任何关于此的文档。

所以我的猜测是你应该有一个服务RequestBuilder来构建要传递的选项对象,并自动添加你需要的所有内容。因此,您的请求将最终看起来像这样:

rp(RequestBuilder.get('uri'))

使用RequestBuilder.get构建get函数并添加必要的头文件。