Sto sviluppando un'applicazione Web sullo stack MEAN (MongoDB, Express, AngularJS e node.js). Sto sviluppando un sistema di login e avrò anche alcune delle rotte Angular protette in modo che solo gli utenti loggati possano accedervi. Sto cercando di pensare al modo migliore per avvicinarmi all'architettura di questo.Architettura per sistema di login su stack MEAN?
Sto pensando al flusso di lavoro corrente:
- utente accede in via AngularJS forma, che invia un HTTP POST per un endpoint Express. L'endpoint convalida l'utente rispetto al database e risponde con un token OAuth e un cookie. Entrambi sono memorizzati nel database mongo per una successiva convalida.
- Una volta che AngularJS riceve la risposta di login, memorizza il cookie ricevuto utilizzando ng-cookie e memorizza il token OAuth in un servizio utente.
- Ogni volta che il percorso cambia in AngularJS ora, il servizio Utente viene utilizzato per assicurarsi che il cookie sia ancora legittimo confrontandolo con i cookie nel database mongo (questa sarebbe una chiamata API usando la risoluzione di Angular ... questo sarebbe creare un ritardo notevole?)
- Quando un utente fa clic su "Esci" o il cookie scade, il cookie e il token OAuth vengono entrambi eliminati dal database e non saranno più validi.
Questo approccio ha senso? È sicuro e sarà relativamente efficiente/rapido nell'esecuzione?
Ha senso, è anche possibile utilizzare le sessioni, in modo da non controllare il DB ogni volta che si modifica il percorso. – tymeJV
Le sessioni saranno gestite da Express? E poi sulla modifica del percorso avrei comunque effettuato una chiamata API ma non sarebbe stato controllare il DB? – Jakemmarsh
Sì, 'req.session' - Controlla questo post: http: // stackoverflow.it/questions/14218725/working-with-sessions-in-express-js - Oppure puoi eseguire il checkout di HTML5 'sessionStorage' – tymeJV