Ze względów bezpieczeństwa tworzymy użytkowników i wysyłamy im tymczasowo wygenerowane hasło . Przy pierwszym logowaniu użytkownik powinien zmienić hasło przed kontynuowaniem nawigacji po chronionych stronach.Lokalne tymczasowe hasło do paszportu (zmiana przy pierwszym logowaniu)
Używam strony internetowej ekspresowej/węzłowej z modułem z lokalnym modułem. Rejestracja, logowanie w użytkownikach wszystkich prac. Ale jestem trochę zagubiony w sprawie najlepszych praktyk dla użytkowników, aby zmienić hasło przy pierwszym logowaniu.
Mój pomysł był aby wykonać następujące czynności:
/* 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);
});
Jak widać mam prostą logiczną (TINYINT 0-1) ustawić w mojej bazy danych (domyślnie 1). Później ustawię metodę post, która po udanej zmianie wartość boolowska zostanie ustawiona na 0.
Czy to jest poprawna metoda ("a", a nie "the": p)? A co z bezpieczeństwem?
Przepraszamy za późną akceptację. Dziękuję za odpowiedź, bardzo mi pomogłeś. – Goowik