2015-05-27 15 views
5

Uso il meccanismo autenticato basato su token sul mio server. Quando l'utente accede tramite app Android, il server restituisce un token che deve essere inviato con ogni richiesta successiva. Ho bisogno di memorizzare quel valore sui dispositivi. Poiché il token è una stringa semplice, ho pensato di utilizzare SharedPreferences per mantenere quel valore. Quando l'applicazione inizia all'interno di MyApplication extends Application, interrogare SharedPreferences per questo token e tenerlo all'interno di MyApplication come stato globale in modo che ogni attività possa accedervi quando invia la richiesta al server.Utilizzare `SharedPreferences` per memorizzare il token di autenticazione

Questo approccio è valido? In caso negativo, quali criticità ha? E se è una cattiva idea, qual è l'approccio alternativo?

PS. Questa non è una domanda soggettiva - Non sto chiedendo l'approccio the best, sto convalidando le mie ipotesi.

+1

Hai mai pensato di utilizzare l'accountManager di Android? con setAuthToken e getAuthToken? – ataulm

+0

Non ho, grazie per il suggerimento. A prima vista sembra più difficile implementare però che mantenere il token tramite 'SharedPreferences'. Ma potrei considerarlo per il futuro –

+0

sì, sicuramente è un mal di testa. È solo l'approccio "corretto". – ataulm

risposta

4

È abbastanza sicuro. Gli utenti non avranno accesso allo SharedPreferences a meno che non abbiano rootato i propri dispositivi. Se sei preoccupato per la sicurezza, potresti crittografare il token prima di archiviarlo all'interno di SharedPreferences.

2

è un'opzione valida, se non si desidera utilizzare uno database o scrivere il token su un file. Nessun inconveniente che io possa pensare a

1

Ha un errore se il dispositivo è rootato. L'utente può vedere il token da SharedPreferences dal proprio dispositivo se il dispositivo è rootato. Ti suggerisco di memorizzare i dati nel database/SQLite usando Sugar here per un migliore approccio al tuo server.

Problemi correlati