出於安全原因,我們創建用戶並向其發送臨時生成的密碼。在繼續導航受保護頁面之前,用戶首次登錄時應更改其密碼。護照本地臨時密碼(首次登錄時更改)
我正在使用運行護照本地模塊的快遞/節點網站。註冊,登錄用戶全部工作。但是我有點迷失在用戶在第一次登錄時更改密碼的最佳做法。
我的想法是做到以下幾點:
/* POST login page. */
router.post('/login', function(req, res, next) {
passport.authenticate('local', { successRedirect: '/dashboard/users',
failureRedirect: 'pages/login'}, function(err, user, info) {
if(err) {
console.log('')
return res.render('pages/login', {title: 'Login', error: err.message});
}
if(!user) {
return res.render('pages/login', {title: 'Login', error: info.message});
}
return req.logIn(user, function(err) {
if(err) {
return res.render('pages/login', {title: 'Login', error: err.message});
} else if (user.firstLogin) {
return res.redirect('/change-password'); // <- First login
} else {
return res.redirect('/dashboard/users');
}
});
})(req, res, next);
});
正如你可以看到我有一個簡單的布爾(TINYINT 0-1)在我的數據庫設置(默認爲1)。之後我會設置一個post方法,在成功修改之後,布爾值將被設置爲0.
這是一個正確的方法('a'而不是'':p)?安全性如何?
對不起,遲到的接受。謝謝你的回覆,幫助我很多。 – Goowik