Wie kann der Benutzer sich für eine Offline-Web-App anmelden?

8

Ich baue eine Offline-Web-App für das iPhone und andere mobile Geräte. Gibt es eine Möglichkeit, die Benutzerauthentifizierung mithilfe des lokalen WebSQL-Speichers zu speichern?

Wenn Sie also die Webanwendung öffnen, während sie offline ist, möchte ich, dass entweder der Benutzer bereits angemeldet ist oder der Benutzer sich anmelden kann.

    
billgajen 18.11.2012, 12:37
quelle

2 Antworten

1

Wenn ich die Frage richtig verstanden habe, könnte man es so machen:

Beim Einloggen (online):

  • Authentifizieren Sie sich gegenüber dem Server. Wenn dies der Fall ist, speichern Sie den Benutzernamen und ein Hash-Passwort (z. B. mit Crypto JS ) in der WebSql-Datenbank.
  • Wenn das Konto bereits in der lokalen Datenbank vorhanden ist, generieren Sie trotzdem einen neuen Hash, falls der Benutzer sein Passwort seit der letzten Anmeldung geändert hat.

Beim Einloggen (offline):

  • Authentifizieren Sie sich bei der lokalen Datenbank.

Dies erfordert natürlich, dass Benutzer sich mindestens einmal mit der Online-Version anmelden, bevor sie sich lokal anmelden. Dies ist zum Beispiel Windows 8, wenn jemand versucht, sich bei der Verbindung mit seinem Microsoft-Konto anzumelden, während die Verbindung unterbrochen ist.

    
Henrik Karlsson 18.11.2012 13:18
quelle
1

Ich weiß nicht, wie man Client-Status-Daten speichert oder verwendet ( keychain in iOS auch in Android ), aber für Web-App-Perspektive, Du musst nichts tun. Sie müssen nichts tun, denn wenn Sie es können, ist es nicht sicher. Nach der Anmeldung wird der Server HTTP only cookie festlegen, die für einige Tage oder Wochen leben. Während dieser Zeit wird die Anforderung mit Anmeldeinformationen für den Server immer vom Browser authentifiziert. Sie können Login-E-Mail oder was auch immer vom Server anfordern. Für zusätzliche Sicherheitszwecke kann der Server XSRF-Token anfordern. In diesem Fall speichern Sie es in localStorage. Dieses Token zu verlieren bedeutet nicht viel.

Dies ist die sicherste Art und Weise und wird auch von mobilen Kunden genutzt, einschließlich Internet-Banking über WebView. Die Verwendung des Browsers zur Authentifizierung ist am sichersten und am einfachsten, da es viele Schwachstellen wie den Speicher für Anmeldeinformationen, die Überprüfung korrekter SSL-Zertifikate, die Verschlüsselung usw. gibt. Bei der Webansicht wird alles vom Browser erledigt.

Wenn Sie interessiert sind, wie diese Servercodes sind, hatte ich eine Erklärung mit Appengine cross domain authentication server code .

    
Kyaw Tun 19.11.2012 01:17
quelle