0
私はexpress.jsにはかなり新しく、ログインした後にセッションクッキーを作成しようとしています。セッションを開始でき、セッションは次のディレクトリに来ていないようです。私はセッションを開始する前にボディーセーラーを含んでいませんでした。Express-session認証
router.use(bodyParser.json());
router.use(bodyParser.urlencoded({ extended: true }));
router.use(session({
name: "authorization",
secret: "secret",
saveUninitialized: false,
resave: false,
cookie: {
secure: true,
httpOnly: true,
maxAge: 1000 * 60 * 60 * 24,
},
}));
router.route("/login")
.get(function(request, response) {
response.render("../views/partials/login");
})
.post(function(request, response, next) {
let username = request.body.username;
let password = request.body.password;
User.findOne({user: username}, function(err, user) {
if (err) {
throw err
}
// test password if matching
if (user !== null) {
user.comparePassword(password, function(err, match) {
if (err || !match)
}
request.session.user = username; // These seems to not follow
request.session.password = password;
});
} else {
response.redirect("/login");
}
});
});
しかし、私は「/ホーム」にリダイレクトするとき、
request.session.user -> undefined
function restrict(req, res, next) {
if (req.session) {
next();
} else {
req.session.error = "Access denied!";
res.sendStatus(403);
}
}
router.route("/home")
.get(restrict, function(request, response) {
console.log(request.session.user) ---> undefined
を未定義request.session.userリターンはなぜクッキー内の任意のユーザーがありませんか?
申し訳ありませんが、これは不快な質問です。
(私はパスポートなどのような任意のプラットフォームを使用したくないPS) (私が知っているPSSは、エラー処理が最善ではありませんが、それは一時的だ)
Cookieパーサーミドルウェアを使用していますか? – Mouneer
@Mouneerはい私はそうです! – Jesper
** cookie.secure **フラグについては、ドキュメント: 'これをtrueに設定すると注意してください。ブラウザはHTTPS接続がないとあなたはhttps接続を使用していますか? – Mouneer