Sto utilizzando PassportJS con ExpressJS.Aggiornamento dei dati utente registrati nella sessione
Ho bisogno di aggiornare i dettagli utente registrati. Mentre aggiorno questo nel DB, come posso aggiornarlo anche nella sessione in modo che request.user contenga i dettagli aggiornati dell'utente?
Cioè, dopo aver aggiornato il database, come posso aggiornare le informazioni sulla sessione anche sull'utente?
Ho provato ad assegnare direttamente i dettagli aggiornati a request.user
ma non ha funzionato. Ho quindi provato request.session.passport.user
- questo ha funzionato, ma c'è un ritardo di circa 5-10 secondi prima che venga aggiornato anche in request.user.
Esiste una funzione che devo chiamare per aggiornare le informazioni dell'utente memorizzate nella sessione? O c'è qualche altro oggetto che posso aggiornare dove la modifica non ha un ritardo
Grazie per la precisazione. Questo sembra essere il modo corretto per aggiornare i dati della sessione poiché 'login' chiama la funzione serializzatore di passaporti che aggiorna i dati dell'utente memorizzati nella sessione. Tuttavia, per qualche ragione, ho riscontrato ritardi nell'aggiornamento della sessione, quindi il codice equivalente 'res.send (200)' nella mia applicazione è stato inserito all'interno di una funzione 'setTimeout' di 2 secondi - ciò ha aiutato. – callmekatootie
Molto strano. Quindi se fai due registri di console come nel mio esempio, il secondo mostra ancora i vecchi dati? Si potrebbe pensare al momento in cui si verifica la richiamata req.login, ogni cambio asincrono sarebbe stato eseguito. Bene, se un secondo di attesa lo risolve ogni volta, sei bravo. – chichilatte