每次在 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?的主要内容,如果未能解决你的问题,请参考以下文章
UnhandledPromiseRejectionWarning、Express.js 和 Node.js
使用 Express.js 在 Node.js 中设置路由的最佳方式