Per motivi di sicurezza, creiamo utenti e inviamo loro una password generata temporanea . Al loro primo accesso l'utente dovrebbe cambiare la sua password prima di continuare a navigare nelle pagine protette.Password temporanea locale passaporto (modifica al primo accesso)
Utilizzo un sito Web express/node che esegue un modulo passaporto locale. Registrazione, accesso negli utenti tutto funziona. Ma mi sento un po 'perso sulle migliori pratiche per gli utenti di cambiare la loro password al primo accesso.
La mia idea era quella di effettuare le seguenti operazioni:
/* 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);
});
Come potete vedere ho un semplice booleano (tinyint 0-1) impostato nel mio database (default a 1). Successivamente imposterò un metodo di post che dopo una modifica avvenuta con successo, il booleano sarà impostato su 0.
È un modo corretto ('a' non 'il': p)? Che ne dici della sicurezza?
Ci scusiamo per l'accettazione tardiva. Grazie per la risposta, mi ha aiutato molto. – Goowik