2
我想补充一个刷新令牌添加到中间件头作为这个问题的第一个答案看到:implementing refresh-tokens with angular and express-jwt中间件的NodeJS设置页眉
后端 - 中间件:
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();
}
}
});
正投end拦截器:
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;
}
};
};
但是,每当我设置一个头,它不会被客户端拦截器接收。当我调试我的npm控制台中的res.header时,设置标题'Authorization'在'_headers'而不是'headers'中。
我该如何解决这个问题。
我试过set,header和setHeader以各种组合,但是这些都没有解决我的问题。 – pmulders