2015-05-04 27 views
1

當前使用node.js,請通過passport.js表示&創建自定義網站/應用程序。自動重定向登錄用戶nodejs passport.js

遵循了幾個指南,我有一個正常運行的身份驗證登錄/註銷系統。但是,如果用戶重新訪問並且他們的會話仍處於活動狀態,則不會將其重定向到「儀表板」。

當前根路徑:

/* GET login page. */ 
    router.get('/',function(req, res) { 
     // Display the Login page with any flash message, if any 
     res.render('index', { message: req.flash('message') }); 
    }); 

我正在使用isAuthenticated功能,如下圖所示:

var isAuthenticated = function (req, res, next) { 
    if (req.isAuthenticated()) 
     return next(); 
    res.redirect('/'); 
} 

我如何得到它自動將用戶重定向與現有會話?任何指針最受歡迎!

回答

1

好吧,我想通了。在/路由中,我查詢是否設置了req.user

/* GET login page. */ 
router.get('/',function(req, res) { 
    if(req.user){ 
     res.redirect("/dashboard"); 
    }else{ 
    // Display the Login page with any flash message, if any 
    res.render('index', { message: req.flash('message') }); 
    } 
}); 
0

你可以附加一個帶有「/」端點的中間件,就像這樣。

router.get('/', sessionValidate, function(req, res, next) { 
    res.render('login'); 
}); 

凡sessionValidate看起來是這樣的:

function sessionValidate(req,res,next){ 
    console.log(req.user,"i am here"); 
    users.findById(req.user,function(err, user) { 
    if(user!=null){ 
     req.session.user = user; 
     res.locals.user=user; 
     res.redirect("/home") 
    } 
    else { 
      next(); 
    } 
    }); 
}