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

Javascript 如何利用请求承诺从Oauth服务器请求OAuth2令牌,并在请求头中包含该令牌,javascript,node.js,Javascript,Node.js,免责声明:我是一名非常新的节点开发人员,对javascript也相当陌生。我有很多关于java、C++和框架的经验,所以我了解开发模式,但我不太熟悉JS是如何结构化的或设计模式。为了快速完成这件事,我有点为难:/ 我们的节点应用程序需要向需要OAuth2身份验证的服务发出请求 我们的应用程序可以成功地请求和接收OAuth承载令牌,它还可以使用该令牌向服务发出请求。但这一切都是非常解耦的 我想做的是将拦截器连接到请求模块(我们使用的是请求承诺),该模块被称为: 请求模块在调用请求的之前将控制传递给

免责声明:我是一名非常新的节点开发人员,对javascript也相当陌生。我有很多关于java、C++和框架的经验,所以我了解开发模式,但我不太熟悉JS是如何结构化的或设计模式。为了快速完成这件事,我有点为难:/

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

我们的应用程序可以成功地请求和接收OAuth承载令牌,它还可以使用该令牌向服务发出请求。但这一切都是非常解耦的

我想做的是将拦截器连接到请求模块(我们使用的是请求承诺),该模块被称为:

  • 请求模块在调用请求的之前将控制传递给我们 服务
  • 我们获取oauth令牌头的缓存副本,或者请求一个新令牌并构建头(并缓存它)
  • 我们将新的oauth令牌头插入到请求中
  • 然后将控制权返回到请求模块,以便正常执行
  • 我查看了requestpromise,发现它在连接“request”模块方面做了类似的事情。看看nodejs“request”模块,看起来可能有一个用于添加OAuth头的钩子

    我的问题是,如果挂钩存在,如何利用它。这是最好的方法吗?最后,是否有此特定案例的示例/模式。我在node中看到了很多OAuth的例子,但大多数都是用于验证传入的客户机,而不是传出的请求,我发现的例子有一个非常解耦的过程,类似于我们已经有的过程


    非常感谢您在此方面提供的任何帮助。

    我在请求承诺模块()中没有找到任何关于此的文档

    所以我的猜测是,您应该有一个ServiceRequestBuilder来构建要传递的选项对象,并自动添加您需要的所有内容。因此,您的请求将以如下方式结束:

    rp(RequestBuilder.get('uri'))
    
    使用RequestBuilder.get构建get函数并添加必要的头