Web アプリ用のセッションベースの認証を構築しようとしています。次の認証機能があります。
function authenticate(req, res) {
var body = req.body;
getAuthUser(body.username, function (err, result) {
if (hash(body.password) != result.password) {
// invalid pass
return;
}
req.session['user'] = result;
res.redirect('/logged/panel');
console.log(req.session); // 'user' session is displayed here
});
}
セキュリティで保護されたコンテンツにアクセスするときにユーザーが認証されるようにするミドルウェアもあります。
function validateRequest(req, res, next) {
console.log(req.session); // 'user' session is not displayed here
(req.session.user) ? next() : res.redirect('/login');
}
問題は、ミドルウェアが関数によって保存された変数を認識しないことですauthenticate
。前もって感謝します。
編集:
これが私のミドルウェアの使用方法です。
router.use(validateRequest);