Non so come memorizzare o utilizzare i dati dello stato del cliente (keychain in iOS anche in Android), ma per la prospettiva dell'app Web, non è necessario fare nulla. Non devi fare nulla perché se puoi non è sicuro. Dopo l'accesso, il server imposterà HTTP only cookie che vive per alcuni giorni o settimane. Durante questo periodo, la richiesta with credentials al server viene sempre autenticata dal browser. Puoi richiedere l'email di accesso o qualsiasi altra cosa dal server. Per ulteriori scopi di sicurezza il server può richiedere XSRF token. In tal caso, salvarlo in localStorage. Perdere questo token significa non molto.
Questo è il modo più sicuro ed è utilizzato anche dai client mobili, compreso l'internet banking tramite WebView. L'utilizzo del browser per l'autenticazione è più semplice e sicuro perché ci sono molti punti deboli come l'archiviazione delle credenziali, il controllo dei certificati ssl corretti, la crittografia, ecc. Con la webview, tutto è gestito dal browser.
Se sei interessato a conoscere questi codici server, ho avuto una spiegazione con Appengine cross domain authentication server code.
fonte
2012-11-18 14:49:15
Interessante domanda, significa che dovrai memorizzare le credenziali dell'utente localmente, il che non è molto sicuro. Mi chiedo se esiste un modo sicuro o le migliori pratiche per raggiungere questo obiettivo. –
Solo qualcosa a cui pensare - se il controllo delle credenziali è, per definizione, fatto sul client in javascript, sarebbe banale per qualcuno di emulare/ignorare l'autenticazione smanettando le proprietà js nell'applicazione. Quindi supponiamo, ad esempio, che i dati sul lato client siano stati sincronizzati con il server quando sei di nuovo online, potrebbero causare problemi. – user888734