2014-10-03 3 views
14

Vorrei scavare in Angular, e per questo vorrei conoscere la differenza tra Archiviazione sessione, Archiviazione locale e Cookie.Differenza tra Archiviazione sessione, Archiviazione locale e Cookie in AngularJS

Problema Interrogativi ---

1) $ windows.sessionStorage può essere utilizzato per la sessione archivio utenti, ma il problema con esso è, quando si apre qualcosa in una nuova scheda di nuovo chiedere all'utente di effettuare il login.

2) L'archiviazione locale sarebbe una soluzione alla domanda 1 del problema? e se è così, vuol dire che ho bisogno di memoria locale e di archiviazione di sessione sia nella mia app che nello storage locale che funzionerà anche come archiviazione di sessione.

3) Sto anche lavorando su Remember me sul mio form di login - E 'sicuro per memorizzare password e-mail dell'utente nella memoria locale per questo, se non ciò che è il modo migliore per farmi ricordare nella angolare

4) I cookie sono fantastici, ma le società aziendali consentono loro di navigare nel browser?

Sperando di trovare risposte decenti

Grazie

+0

Se le risposte qui sotto presentato una soluzione alla tua domanda, si prega di accettare la risposta facendo clic sul segno di spunta accanto la risposta.Ciò aiuterà i futuri utenti alla ricerca di una risposta alla stessa domanda. Grazie. – SnareChops

risposta

23

1) E 'vero che sessionStorage è temporaneo, ed è stato progettato per fare in modo.

2) L'archiviazione locale risolverà il problema del login che va via con una nuova sessione del browser in corso o dopo aver atteso a lungo, ma no, localStorage non fungerà da cookie di sessione per le richieste del browser.

3) Molte diverse applicazioni lato server supportano il supporto dei cookie di crittografia e antimanomissione per le applicazioni. Detto questo, è sempre meglio non memorizzare le password degli utenti nel client, forse un token forse che il tuo server riconoscerà e sarà in grado di decifrare/decodificare e cercare il record utente corretto.

4) Direi che al giorno d'oggi sì, i cookie sono generalmente accettati per essere sicuri, tuttavia questa è sempre una possibilità, e in base ai clienti o al pubblico potresti avere un problema lì. Anche le sessioni non funzioneranno se i cookie sono disabilitati nel browser. (Anche se la mia opinione su questo è speculazione su una popolazione generale, cioè: non citatemi su questo)

La mia raccomandazione per le vostre esigenze è quella di impostare una variabile di sessione quando l'utente incontra la pagina. Quindi memorizzare il risultato in localStorage o con un cookie, quindi quando l'utente torna all'applicazione dopo che la sessione è morta, disporre di un'architettura configurata per eseguire nuovamente l'autenticazione e riassegnare automaticamente la sessione.

Spero che questo aiuti!

Edit:cookie di sessione sono condivisi tra le schede del browser all'interno della stessa finestra. Tuttavia, Archiviazione sessione non è stato indicato.

+2

In Angular, la memorizzazione della sessione, perde le informazioni quando vengono aperte in una nuova scheda. A meno che non stia facendo qualcosa di sbagliato. Bella risposta però. Grazie – GeekOnGadgets

+0

Questo è strano. Quale browser stai usando? o l'hai notato in tutti i browser? – SnareChops

+4

La memorizzazione della sessione ha ambito per una particolare scheda/finestra e non è condivisa tra le schede del browser, anche se accedono allo stesso URI. Se è necessario condividere qualcosa tra due schede o finestre, è necessario utilizzare 'localStorage'. Nota, le regole della stessa origine si applicano ancora. – demisx