我有兩個應用程序,都在Nodejs上。一個前端和其他後端。 我的後端應用程序受到使用express-jwt和jsonwebtoken中間件的令牌訪問的保護。當res.redirect找不到授權令牌
我的問題是:我正在從前端向通過標頭上的令牌的後端請求,後端接受請求並正確響應。然後在前端我重定向到一個特定頁面的響應(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請求,同意。但是res.redirect是在前端完成的,這意味着* res *對象來自前端。我的理解是它不應該再次調用後端。此外,我已經嘗試了第二個選項將標記再次放在* req *對象中,但是在標頭參數中,而不是在會話中。它沒有工作。 –
是否因爲這兩個應用程序都在localhost中? (但在不同的端口上) –