SharedPreferences für User-Session

J

jemand

Mitglied
Man kann ja die SharedPreferences in einer Android-App nutzen, um nach einem Login den Nutzernamen in einer Datei zu speichern, sodass man bei den weiteren Activities und nach einem Neustart der App sich nicht erneut anmelden muss.

Aber was genau soll man in diese Datei hinterlegen? Nur den Nutzernamen? Aber das kann man doch nicht tun. Da kann man ja den Nutzernamen in der Datei ändern und sich einfach als jemand Anderes ausgeben. Das Passwort möchte man natürlich auch nicht im Klartext dort abspeichern.
 
kneitzel

kneitzel

Top Contributor
Mir ist das Szenario jetzt erst einmal nicht bekannt, das Du abdecken willst.

Generell bist Du auf einem Android System mit einem User unterwegs. Damit speichert Deine App Daten, die der Benutzer eingegeben hat. Dies kann er natürlich auch jederzeit ändern. Die Änderung eines gespeicherten Wertes ist ja erst einmal rein lokal auf dem Gerät. Und der Anwender kann da ja angeben, was er will.

Ein Login selbst erfolgt ja auf einem anderen System. Wenn der Benutzer sich authentifiziert gegenüber einem Dritten, dann kannst Du das natürlich auch speichern. Eine Änderung der Daten sorgt aber dann dafür, dass die Authentifizierung beim nächsten Mal nicht mehr klappt. Also spielen wir das einmal durch: Meine App macht ein Login hier am Forum. "JustNobody" als User mit meinem Passwort wird dann gespeichert. Wenn ich jetzt in der Datei "JustNobody" durch "jemand" ersetze, werde ich nicht hier im Forum zu Dir, sondern beim nächsten Zugriff wird der Zugriff fehlschlagen (So wir nicht durch Zufall das gleiche Passwort haben).

Generell ist das Speichern von Passwörtern aber eine ganz schlechte Praxis. Man kann sich da mal anschauen, wie das Identity Systeme machen (Also z.B. Anmeldung über Google, Facebook, FireBase, .....). Bei Facebook und Google ist es z.B so, dass die Authentifizierung direkt an den Servern erfolgt und Deine App Login/Passwort nicht einmal mitbekommt. Die leiten also dein Request an eine URL weiter und wenn die Authentifizierung (Nutzer hat sich angemeldet) und Autorisierung (Nutzer hat Zugriff gestattet) dann erfolgreich war, dann wird sozusagen ein Token gespeichert und die App meldet sich dann nur noch mit eigener App-Id und dem vergebenen Token an.

Aber da hängt es generell davon ab, was genau Du machen willst. Dann kann man überlegen, was da vielleicht Sinn macht oder nicht. Wenn es um die Authentifizierung geht, dann ist evtl. auch Smart Lock interessent: https://developer.android.com/distribute/best-practices/develop/smart-lock-for-passwords
 
J

jemand

Mitglied
Mir ist das Szenario jetzt erst einmal nicht bekannt, das Du abdecken willst.

Generell bist Du auf einem Android System mit einem User unterwegs. Damit speichert Deine App Daten, die der Benutzer eingegeben hat. Dies kann er natürlich auch jederzeit ändern. Die Änderung eines gespeicherten Wertes ist ja erst einmal rein lokal auf dem Gerät. Und der Anwender kann da ja angeben, was er will.

Ein Login selbst erfolgt ja auf einem anderen System. Wenn der Benutzer sich authentifiziert gegenüber einem Dritten, dann kannst Du das natürlich auch speichern. Eine Änderung der Daten sorgt aber dann dafür, dass die Authentifizierung beim nächsten Mal nicht mehr klappt. Also spielen wir das einmal durch: Meine App macht ein Login hier am Forum. "JustNobody" als User mit meinem Passwort wird dann gespeichert. Wenn ich jetzt in der Datei "JustNobody" durch "jemand" ersetze, werde ich nicht hier im Forum zu Dir, sondern beim nächsten Zugriff wird der Zugriff fehlschlagen (So wir nicht durch Zufall das gleiche Passwort haben).

Generell ist das Speichern von Passwörtern aber eine ganz schlechte Praxis. Man kann sich da mal anschauen, wie das Identity Systeme machen (Also z.B. Anmeldung über Google, Facebook, FireBase, .....). Bei Facebook und Google ist es z.B so, dass die Authentifizierung direkt an den Servern erfolgt und Deine App Login/Passwort nicht einmal mitbekommt. Die leiten also dein Request an eine URL weiter und wenn die Authentifizierung (Nutzer hat sich angemeldet) und Autorisierung (Nutzer hat Zugriff gestattet) dann erfolgreich war, dann wird sozusagen ein Token gespeichert und die App meldet sich dann nur noch mit eigener App-Id und dem vergebenen Token an.

Aber da hängt es generell davon ab, was genau Du machen willst. Dann kann man überlegen, was da vielleicht Sinn macht oder nicht. Wenn es um die Authentifizierung geht, dann ist evtl. auch Smart Lock interessent: https://developer.android.com/distribute/best-practices/develop/smart-lock-for-passwords
Danke für die Antwort. Hat geholfen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
apple_pie1998 SharedPreferences funktionieren nicht... Android & Cross-Platform Mobile Apps 17
C SharedPreferences und int Android & Cross-Platform Mobile Apps 5
M Barrierefreie Appentwicklung für Android - Suche Codebeispiele Android & Cross-Platform Mobile Apps 8
I App für Fire HD entwickeln Android & Cross-Platform Mobile Apps 3
T Bringen mir die Java-Basics irgendetwas für die Android-Programmierung Android & Cross-Platform Mobile Apps 4
L Textfeld für Dezimalzahl mit Vorzeichen Android & Cross-Platform Mobile Apps 2
J Android Datenbank Klasse nur für CRUD-Operation, oder auch mehr ? Android & Cross-Platform Mobile Apps 8
B Android Projekt für Android und IOS erstellen? Android & Cross-Platform Mobile Apps 5
J Impressumspflicht für App, wenn ich kein Unternehmer bin? Android & Cross-Platform Mobile Apps 13
T Android Equalizer für Android Android & Cross-Platform Mobile Apps 3
L Zeitstempel für Sensordaten bekommen Android & Cross-Platform Mobile Apps 3
L Android Texterkennung für Android? Android & Cross-Platform Mobile Apps 1
L Android Chart API für Android Android & Cross-Platform Mobile Apps 0
T Android Datenbankverbindung in Service für Push Notification Android & Cross-Platform Mobile Apps 0
R Android USB Treiber für Huawei Android & Cross-Platform Mobile Apps 1
M Hilfe bei App Programmierung für Android Android & Cross-Platform Mobile Apps 1
B Script für Android Android & Cross-Platform Mobile Apps 1
H Datenprotokoll für Graphview Android & Cross-Platform Mobile Apps 2
M Android Obfuscation für Strings Android & Cross-Platform Mobile Apps 8
S Bilder mit fester grösse für verschiedene Android Endgeräte Android & Cross-Platform Mobile Apps 2
D Android Layout für alle Geräte Android & Cross-Platform Mobile Apps 4
A String[] für Lisadapter Android & Cross-Platform Mobile Apps 4
D Lib für (Desktop-)Java und Android schreiben Android & Cross-Platform Mobile Apps 7
J MySQL Simulation für Android App Android & Cross-Platform Mobile Apps 2
kaoZ Tutorial .xml Layouting für z.B ListView elemente Android & Cross-Platform Mobile Apps 7
W Java Editor für Android +Emulator Android & Cross-Platform Mobile Apps 7
M 20 Image Button für jede Auflösung positionieren Android & Cross-Platform Mobile Apps 3
L Android ActionBar mit unterschiedlichen Farben für Tabs Android & Cross-Platform Mobile Apps 3
S Voraussetzungen für Android-Apps Android & Cross-Platform Mobile Apps 7
R Sinnvoller Ablageort für Leveldaten Android & Cross-Platform Mobile Apps 8
B App bei Play-Store für bestimmte auflösungen anbieten? Android & Cross-Platform Mobile Apps 3
G extends Activity für Berechnungen? Android & Cross-Platform Mobile Apps 7
H Progrämmchen für Symbian Android & Cross-Platform Mobile Apps 4
G wiederkehrenden Wert für Design in XML ablegen Android & Cross-Platform Mobile Apps 2
L Android SearchBox für Custom Listview Android & Cross-Platform Mobile Apps 5
T Android KontrollApp für Nitrado Server Android & Cross-Platform Mobile Apps 2
L Android Eine Kleinigkeit für Profis Android & Cross-Platform Mobile Apps 2
G Android C++ Quellcode für Android Geräte compilieren Android & Cross-Platform Mobile Apps 2
T Zeit in zwei Zahlen für Widget zerlegen Android & Cross-Platform Mobile Apps 2
J Apps für Android programmieren - Android Handy notwendig oder reicht Simulator? Android & Cross-Platform Mobile Apps 3
A Android SimpleDateFormat gibt für Date unter android anderes Datum zurück als in Std. Java Android & Cross-Platform Mobile Apps 2
H Android Landscape Modus für App dektivieren Android & Cross-Platform Mobile Apps 3
M Frage zu Java Programm für Windows Mobile 6.5 Android & Cross-Platform Mobile Apps 2
H Welches JDK für Huawei G7002? Android & Cross-Platform Mobile Apps 6
C Panel/View für Android Android & Cross-Platform Mobile Apps 3
C Sanke für Android Android & Cross-Platform Mobile Apps 3
Kukulkan Welche Mindestanforderungen (JDK) für Android und BB? Android & Cross-Platform Mobile Apps 8
G Views für verschiedenen Bildschirmgroeßen Android & Cross-Platform Mobile Apps 2
thE_29 Widget für verpasste Anruf + SMS Android & Cross-Platform Mobile Apps 2
A Android Android Parameter für VM Android & Cross-Platform Mobile Apps 7
O Entwickler für Java Anwendungen auf Handy gesucht! Android & Cross-Platform Mobile Apps 3
S JButton in GUI für Handys? Android & Cross-Platform Mobile Apps 3
M Welche Datenbank für J2ME? Android & Cross-Platform Mobile Apps 5
D Event für Tastensperre? Android & Cross-Platform Mobile Apps 3
G WTK für Nokia Android & Cross-Platform Mobile Apps 2
P bestimmte API für XDA ORBIT2 Android & Cross-Platform Mobile Apps 3
S Idee gesucht für ein kleines Programm Android & Cross-Platform Mobile Apps 3
M ein image pixel für pixel aufbauen : setPixel() ? Android & Cross-Platform Mobile Apps 1
M Handyprogramm für U-Bahn-Fahrplan für Siemens SK65 Android & Cross-Platform Mobile Apps 2
J Empfehlungen für ME-Anfänger Android & Cross-Platform Mobile Apps 2
K Anwendung für Handy programmieren Android & Cross-Platform Mobile Apps 1
P Java für PDA DELL Axim 51 Android & Cross-Platform Mobile Apps 4
M Virtuelle Machiene für PDA Android & Cross-Platform Mobile Apps 8
B Programm für NokiaComunicator erstellen Android & Cross-Platform Mobile Apps 2
K Programme für Handy erstellen Android & Cross-Platform Mobile Apps 3
M Java-Programme für Handy auf Desktop-PC ausführen Android & Cross-Platform Mobile Apps 4
T Für Handy Game die Sprache umschreiben? Android & Cross-Platform Mobile Apps 24
M java game für handy mit grahi. oberfläche Android & Cross-Platform Mobile Apps 1
D java.security.MessageDigest (für ME?) Android & Cross-Platform Mobile Apps 1
N Unser Team such Coder für Spieleprojekte Android & Cross-Platform Mobile Apps 8
B WTK für Sony Ericsson? Android & Cross-Platform Mobile Apps 7
S JAVA für java-mobiltelefone Android & Cross-Platform Mobile Apps 14
J picasso - url nur von bestimmten user zu erreichen Android & Cross-Platform Mobile Apps 1
D Android Single-Sign-On is only supported on Windows. Please specify a user name. Android & Cross-Platform Mobile Apps 2
J user.home Android & Cross-Platform Mobile Apps 12

Ähnliche Java Themen

Anzeige

Neue Themen


Oben