每次在 Node.js (Express.js) 中发出 API 请求之前,如何简化 Fetching Auth token?

Posted

技术标签:

【中文标题】每次在 Node.js (Express.js) 中发出 API 请求之前,如何简化 Fetching Auth token?【英文标题】:How do I simplify Fetching Auth token every time before making API request in Node.js (Express.js)? 【发布时间】:2021-09-06 22:33:09 【问题描述】:

我的服务需要响应从 UI 获取请求。我正在从需要身份验证的第 3 方获取数据。所以这就是我现在的逻辑:

前端发出 get 请求,在我的 get 方法中,我首先进行后调用以获取 auth 令牌,然后使用该令牌向同一个 3rd 方发出 get 请求并将获取的数据发送到 UI。 我不喜欢为来自 UI 的每个获取请求进行后期调用以获取令牌。我该如何简化呢?

逻辑:

app.get('/index', (req, res) => 
    
// 1) I make async post call to get token to the 3rd party

// 2) Using this token,I make get call to the same 3rd party

// 3) send the response

)

【问题讨论】:

您可以编写一个 node.js 中间件,如果您的第 3 方允许您存储令牌,那么您可以每次都为您提供身份验证数据,然后您可以将其缓存在您的网络服务器上并重复使用它。 【参考方案1】:

引用文档。如果您使用 express,这可以帮助您:

var express = require('express')
var app = express()

var getToken = function (req, res, next) 
  // code for getting token
  req.authToken = 'HASHED TOKEN';
  next()


app.use(getToken)

app.get('/index', function (req, res) 
let authToken = req.authToken;

// 2) Use this token for getting the data

// 3) send the response
  res.send(response)
)

app.listen(3000)

【讨论】:

以上是关于每次在 Node.js (Express.js) 中发出 API 请求之前,如何简化 Fetching Auth token?的主要内容,如果未能解决你的问题,请参考以下文章

node.js 和 express 的区别

UnhandledPromiseRejectionWarning、Express.js 和 Node.js

在 express.js 中,req.files 未定义

使用 Express.js 在 Node.js 中设置路由的最佳方式

在 express.js 中为 node.js 使用 jsonp

在Javascript(node.js,express.js,ejs)中访问服务器端变量[关闭]