我試圖在登錄時設置cookie,但該cookie似乎不遵循下一個請求。我究竟做錯了什麼? (對不起,如果沒有問題,表達很新)。會話cookie未在下一個請求中設置 - Express.js
的app.js
let express = require("express");
let session = require("express-session");
let bodyParser = require("body-parser");
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(session({
secret: "secret",
resave: false,
saveUninitialized: false,
cookie: { secure: true }
}));
路由器
router.route("/login")
.get(function(request, response) {
response.render("../views/partials/login");
})
.post(function(request, response) {
let username = request.body.username;
let password = request.body.password;
User.findOne({user: username}, function(err, user) {
if (err) {
// Some error handling
}
// test password if matching
if (user !== null) {
user.comparePassword(password, function(err, match) {
if (err || !match) {
console.log("The user could not be found")
}
request.session.Auth = { username: username, password: password };
response.redirect("/home");
response.end();
});
} else {
// some error handling
}
});
});
後來,當我做 「/家」 的下一個請求,會話cookie保存沒有關於用戶(REQ值。 session.Auth返回undefined)
router.route("/home")
.get(restrict, function(req,res) {
console.log(req.session.Auth) // -> undefined
res.render("../views/home")
});
也許我在做這個錯誤,但我不明白爲什麼request.session不包含Auth值。有人可以幫忙嗎?
P.S.我不想使用任何模塊來處理授權,例如護照等。
忘了補充一點,我不想用passport.js來完成學習目的:)。但爲什麼它不工作? – Jesper
請求對象具有與客戶端發出的請求有關的數據。客戶返回的唯一東西是響應,請求不會返回給客戶端。 – paqash
你可以發送session-cookie作爲迴應嗎? – Jesper