パスポートは認証にのみ使用されます。後でセッションを維持する必要が生じた後、ユーザーがログインしているかどうかを確認します。
したがって、すべてのルートの前にミドルウェアコールを発信できます。 ユーザーがログインしているかどうかをチェックするMiddlleware。
'use strict';
var express = require('express');
module.exports = {
isLoginCheck : function (request, response, next) {
if(!request.session.user && request.path != '/login'){
response.redirect('/login');
}else{
next();
}
},
}ルートファイルのインポートミドルウェアで
、
var express = require('express'),
indexController = require('./../controller/index'),
middleware = require('./../middleware/index'),
passport = require('passport'),
router = express.Router();
router.get('/addUser', indexController.addUser);
router.post('/saveUser', indexController.saveUser);
router.use(middleware.isLoginCheck);
router.get('/', indexController.index);
router.get('/login', indexController.login);
router.post('/login', function(request, response, next){
passport.authenticate('local', function(err, user, info) {
if (err) {
return next(err);
}
if (!user) {
var message = "Invalid credentials";
return response.render('login',{message: info.message, userLoggedIn : null});
}
request.logIn(user, function(err) {
if (err) { return next(err); }
request.session.user = request.user;
response.redirect('/userList');
});
})(request, response, next);
})。
注:成功した場合、検証済みのユーザーはセッション中に保存されます。これはサーバーが動作するまで続きます。上記ミドルウェアはセッションオブジェクトをチェックしています。認証ダイアログが判明