我正在开发Express JS
网络应用程序。我的应用程序中有3层。外部API服务器,Express和Angular作为前端。所以来自前端的每个AJAX请求都应该通过express来以同样的方式到达API服务器,也是响应。身份验证由API服务器管理。当我从Angular发送登录请求时,它将首先到达Express,然后Express会向API服务器发送请求,API服务器会将身份验证令牌发送给Express,Express会将其传递给前端。因此Angular的所有请求都会将Authentication令牌作为标头发送给Express,express将发送带有访问令牌的相应请求。我的应用程序如何工作。我知道有点复杂。现在我从前端请求中检索访问令牌,并将其传递给所有控制器中的API服务器。我想要做的是,我必须编写一个拦截器,它将从前端请求全局检索访问令牌并传递给API服务器。
答案 0 :(得分:0)
您可以在主文件中添加application middleware
,即路线上方(app.js/server.js)
。
function interceptor(req, res, next) {
let headers = req.headers;
headers.someHeader = 'xyz'; // add your headers like this
request('your server url here', {
method: req.method,
headers: headers,
}, (err, response, body) => {
if (err) {
next(err);
}
else {
console.log(response.request.headers);
res.send('OK');
}
});
}
app.use(interceptor);