3 Stimmen

Android -- Speichern von Daten in gemeinsam genutzten Einstellungen

Ich entwerfe derzeit eine Anwendung, die eine initiale Anmeldeseite hat. Ich biete die Funktion "Mich erinnern" an und habe Benutzername und Passwortwerte in den gemeinsamen Einstellungen gespeichert. Ich habe meinen Beispielcode unten dargestellt.

SharedPreferences preferences = getApplicationContext().getSharedPreferences("MyAppSettings",Context.MODE_PRIVATE);
SharedPreferences.Editor edit = preferences.edit();
edit.putString("username",username);
edit.putString("password",password); 
edit.commit();

Info: Angenommen, Benutzername und Passwort sind Zeichenfolgenvariablen, die vom Benutzer ausgefüllt werden.

Immer wenn der Benutzer das Kontrollkästchen "Mich erinnern" setzt, speichere ich diese Variablen in den gemeinsamen Einstellungen.

Ich frage mich, ob dieser Weg sicher und zuverlässig ist, um diesen Vorgang durchzuführen?

Meine ich, ob diese Variablen von außerhalb der Anwendung erreichbar sind?

Muss ich auch das Passwort des Benutzers verschlüsseln und in den gemeinsamen Einstellungen speichern?

Im Voraus vielen Dank,

4voto

Budius Punkte 38750

Auch wenn Raghav Sood Ihre Frage korrekt beantwortet hat, ist Ihrer Ansicht nach Ihr Ansatz zum App-Design grundlegend falsch.

Die modernen Praktiken legen nahe, dass Benutzername und Passwort überhaupt nicht in Ihrer App gespeichert werden sollten. Stattdessen sollte der Anmeldeprozess ein OAuth-Token generieren, das Ihre App dann verschlüsseln und für zukünftigen Zugriff auf den Webserver speichern kann.

Um allgemeine Informationen über OAuth-Token zu erhalten, können Sie den Wikipedia-Artikel dazu überprüfen http://de.wikipedia.org/wiki/OAuth und nur als Beispiel verwendet twitter diesen Ansatz für mit ihm verbundene Apps https://dev.twitter.com/docs/auth/oauth/faq

3voto

Raghav Sood Punkte 81319

Ich meine, können diese Variablen von außerhalb der Anwendung erreichbar sein?

Jeder mit einem gerooteten Gerät kann Ihre SharedPreferences einsehen. Es handelt sich einfach um eine XML-Datei, die auf dem Gerät gespeichert ist.

Muss ich auch das Passwort des Benutzers verschlüsseln und in den freigegebenen Einstellungen speichern?

Es wäre sicherer, dies zu tun, ja. Verschlüsseln Sie auch den Benutzernamen, während Sie dabei sind.

0voto

Abdul Wasae Punkte 3576
  1. Machen Sie den Benutzer, den Benutzernamen und das Passwort einzureichen
  2. Sobald das Backend den Benutzer validiert hat, lassen Sie den Server eine JWT zurückgeben
  3. Speichern Sie diesen JWT sicher in den gemeinsamen Einstellungen mit Hilfe von Hawk
  4. Verwenden Sie diesen JWT, um den Benutzer in Zukunft zu authentifizieren

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X