セキュリティ上の理由から、ユーザーを作成し、一時的に生成されたパスワードを送信します。最初のログイン時に、保護されたページの移動を続行する前に、パスワードを変更する必要があります。Passportローカルの一時パスワード
パスポートローカルモジュールを実行しているエクスプレス/ノードのWebサイトを使用しています。登録、ユーザーログインはすべて動作します。しかし、最初のログイン時にユーザーがパスワードを変更するためのベストプラクティスを見失ってしまいます。
私の考えは、次の操作を実行することでした。
/* 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)を持って見ることができるように。その後、ポストメソッドを設定し、変更が成功するとブール値は0に設定されます。
これは正しい方法ですか( 'a': '':p)?セキュリティはどうですか?
遅く受け入れて申し訳ありません。返事をありがとう、私をたくさん助けてくれた。 – Goowik