Sto tentando di autenticare e accedere a un utente immediatamente dopo aver inviato un POST sul modulo /register
. Idealmente, vorrei che gli utenti potessero registrarsi e quindi essere reindirizzati immediatamente alla dashboard senza dover inserire nuovamente le loro credenziali.Autenticazione passaporto immediatamente dopo la registrazione di nuovo utente
Il mio server utilizza Passaporto 0.1.17 con la strategia locale configurata per utilizzare l'indirizzo di posta elettronica e la password per l'accesso. Il codice attuale è:
app.post('/register', function(req, res) {
// attach POST to new User variable
var registerUser = new User({ email: req.body.email, password: req.body.password, name: req.body.name });
// save registerUser Mongo
registerUser.save(function(err) {
if(err) {
console.log(err);
} else {
console.log('registerUser: ' + registerUser.email + " saved.");
}
});
// here is where I am trying to authenticate and then redirect
passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }),
res.redirect('/dashboard');
});
Come dovrei refactoring questo codice per salvare il nuovo utente, quindi autenticarsi e, infine, reindirizzare al cruscotto?
Grazie in anticipo!
Utilizzare il metodo 'req.logIn' per l'autenticazione subito dopo la registrazione. – moka
Grazie per aver fatto riferimento a 'req.logIn', che in precedenza non ero a conoscenza. Puoi fornire un codice più specifico. Ho provato quanto segue dopo il commento finale della domanda di cui sopra, ma non ha funzionato: 'req.login (registerUser, la funzione (err) { se (err) {return successivo (err);} ritorno res.redirect ('/ cruscotto'); }); ' – surfearth
è necessario fornire i dettagli che vengono utilizzati per deserializzare utente, di solito si tratta di ID di un utente che è memorizzato in una sessione. – moka