我有两个应用程序,都在Nodejs上.一个前端和另一个后端.
我的后端应用程序使用express-jwt和jsonwebtoken中间件进行令牌访问保护.
我的问题是:我正在从前端向后端发出请求,在标头上传递令牌,后端接受请求并正确响应.然后在前端我将响应重定向到特定页面(res.redirect(‘/’)),在那一刻我得到错误UnauthorizedError:没有找到授权令牌
我的前端请求:
/* Authentication */
router.post('/', function(req, res, next) {
// request login service
request({
uri: env.getUrl() + "/user",
method: 'POST',
timeout: 10000,
headers: {
'Authorization': 'Bearer '.concat(global.token)
},
form: { login : req.body.login, pwd : req.body.pwd }
}, function(error, response, body){
if(error) {
logger.error(error);
res.render("error", {message: "Error getting user" });
}
else {
if(body){
req.session.usuario = JSON.parse(body);
res.redirect("/");
} else {
res.render("login", {message: "Login Failed" });
}
}
});
});
我不知道为什么会这样.你可以帮帮我吗?
提前致谢.
解决方法:
重定向(通过res.redirect)发出新的HTTP请求.这意味着Authorization标头为空.这会导致UnauthorizedError错误.
要解决此问题,您有两种选择:
1.在URI中传递令牌
您可以通过以下方式使用URL中传递的令牌发出重定向:
res.redirect("/?access_token=" + global.token);
2.在重定向之前设置标题
您可以在进行重定向请求之前设置“授权”标头:
req.session.access_token = global.token;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。