res.redirect 时未找到授权令牌
No authorization token was found when res.redirect
我有两个应用程序,都在 Nodejs 上。一个 front-end 和另一个 back-end。
我的 back-end 应用通过使用 express-jwt 和 jsonwebtoken 中间件的令牌访问受到保护。
我的问题是:我正在从 front-end 向 back-end 发出请求,并在 header 上传递令牌,back-end 接受请求并正确响应。然后在 front-end 中我将响应重定向到特定页面 (res.redirect('/')),在那一刻我得到错误 UnauthorizedError: 未找到授权令牌
我的front-end请求:
/* 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
header 是空的。这会导致 UnauthorizedError 错误。
要解决此问题,您有两种选择:
1.在 URI
中传递令牌
您可以通过以下方式使用 URL 中传递的令牌发出重定向:
res.redirect("/?access_token=" + global.token);
2。在重定向前设置 header
您可以在发出重定向请求之前设置 'Authorization'
header:
req.session.access_token = global.token;
发现问题。
只要我的前端应用程序向后端发出请求 (api),登录前端的用户就会根据后端进行验证,因此前端的会话会更新以及。这意味着每个请求实际上是两个请求:
- 一个作为应用正在执行的真实请求。
- 验证用户登录前端以确保用户存在的请求。
此更新(第二点)是在没有提供令牌的情况下进行的。
我有两个应用程序,都在 Nodejs 上。一个 front-end 和另一个 back-end。 我的 back-end 应用通过使用 express-jwt 和 jsonwebtoken 中间件的令牌访问受到保护。
我的问题是:我正在从 front-end 向 back-end 发出请求,并在 header 上传递令牌,back-end 接受请求并正确响应。然后在 front-end 中我将响应重定向到特定页面 (res.redirect('/')),在那一刻我得到错误 UnauthorizedError: 未找到授权令牌
我的front-end请求:
/* 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
header 是空的。这会导致 UnauthorizedError 错误。
要解决此问题,您有两种选择:
1.在 URI
中传递令牌
您可以通过以下方式使用 URL 中传递的令牌发出重定向:
res.redirect("/?access_token=" + global.token);
2。在重定向前设置 header
您可以在发出重定向请求之前设置 'Authorization'
header:
req.session.access_token = global.token;
发现问题。
只要我的前端应用程序向后端发出请求 (api),登录前端的用户就会根据后端进行验证,因此前端的会话会更新以及。这意味着每个请求实际上是两个请求:
- 一个作为应用正在执行的真实请求。
- 验证用户登录前端以确保用户存在的请求。
此更新(第二点)是在没有提供令牌的情况下进行的。