gpt4 book ai didi

angularjs - NodeJs中间件设置头

转载 作者:太空宇宙 更新时间:2023-11-03 22:30:11 25 4
gpt4 key购买 nike

我想添加一个刷新 token 到中间件的 header 中,如这个问题的第一个答案所示:implementing refresh-tokens with angular and express-jwt

后端 - 中间件:

jwt.verify(token, config.secret, function(err, decoded) {
if (err) {
res.status(401);
return res.json({ success: false, message: 'Authentication failed' });
} else {
var token_exp = new Date(decoded.exp * 1000);
var date = new Date();
var difference = (token_exp.getTime() - date.getTime()) / 60000;

if(difference < (config.expireTimeToken / 2 )){
var expires = config.expireTimeToken + 'm';
var token = jwt.refreshToken(decoded);

res.setHeader('Authorization', 'Bearer ' + token);
next();
}else{
req.decoded = decoded;
next();
}
}
});

前端拦截器:

module.exports = function ($injector) {
return {
request: function (config) {

var CoreService = $injector.get('CoreService');

config.headers['x-access-token'] = CoreService.getToken();
return config;
},
response: function(response) {
var receivedToken = response.headers('authorization');
console.log(receivedToken);
return response;
}
};
};

但是,每当我设置 header 时,客户端的拦截器都不会收到它。当我在 npm 控制台中调试 res.header 时,设置的 header “Authorization”位于“_headers”而不是“headers”中。

我该如何解决这个问题。

最佳答案

在快速中间件中,您可以使用 res.set(field, [value])res.header(field, [value]) 设置 header (同一函数的别名)。 setHeader 不是express方法,而是原生node.js,我认为这可能会导致问题。

关于angularjs - NodeJs中间件设置头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38223216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com