Come posso gestire l'autenticazione utente e le sessioni nella mia app?

0

Attualmente sto costruendo un modulo di autenticazione e ho una domanda. Ho configurato un server con un'API e desidero che i miei utenti effettuino l'autenticazione su questo server, ma utilizzo AngularJS per il sito. Tutto con AngularJS è client-side, quindi mi chiedevo come impostare l'ID utente senza che nessuno potesse cambiarlo e fingere di essere qualcun altro.

Il modo in cui sto pensando di farlo è che quando un utente accede alla mia app, creo una stringa casuale sul mio server e lo cancello. Lo invio quindi all'app e lo memorizzo sia nell'archivio locale dell'app che nel database sul mio server, e ho l'app che lo include con tutte le richieste. In questo modo, quando qualcuno fa una richiesta, posso semplicemente controllare che la stringa che inviano sia quella nel mio database; quando un utente si disconnette, cancello la memoria locale e rimuovo la stringa dal mio database. Creo una nuova stringa al prossimo accesso.

Questa è una buona idea? Forse questo è il modo normale di andare, ma non ho trovato nessuna soluzione di autenticazione gratuita su Internet. Poiché questa app probabilmente avrà molto traffico, non sono disposto a pagare per ogni connessione al mio server.

    
posta Sjoerd de Wit 11.07.2014 - 16:28
fonte

1 risposta

1

Il sistema che stai descrivendo assomiglia molto a sistemi di autenticazione sessione / gestione standard basati su cookie, in quanto tu autentica l'utente e poi fornisci un token di sessione che ti consente di identificare le richieste da quell'utente per la durata della loro sessione.

Sebbene tu possa implementarlo manualmente, ti suggerisco di non farlo, poiché ci sono un sacco di potenziali insidie e cose da sapere su come ottenere la gestione delle sessioni corretta e sarebbe facile sbagliare e lasciare la tua applicazione vulnerabile alla sessione comune attacchi di gestione.

non hai detto quello che stai usando per fornire la logica lato server per la tua applicazione ma, ad esempio, se stai usando qualcosa come Node.JS, allora ci sono moduli di gestione delle sessioni disponibili in npm (ad esempio Sessioni client Mozilla ).

In generale, se cerchi "gestione delle sessioni (il tuo framework lato server)" mi aspetterei che troverai un certo numero di moduli che implementano la funzionalità necessaria

    
risposta data 13.03.2015 - 23:08
fonte

Leggi altre domande sui tag