Android App Strategie zum Nachverfolgen einer Anmeldesitzung

8

Ich habe ein PHP-Skript, das sich anmeldet und ein JSON-Array mit einer Sitzungs-ID zurückgibt, wenn die Anmeldung erfolgreich war.

In meiner App möchte ich mich auf der Startseite anmelden und fortfahren, indem die App angemeldet ist. Ich habe eine Singleton-Klasse erstellt, die eine Session-ID (zusammen mit einigen anderen Feldern) von PHP aus dem JSON enthält Seite. Das Feld "session_id" dieses Singleton-Objekts wird abhängig davon überprüft, was der Benutzer tut.

Wenn der Benutzer sich abmelden möchte, wird die session_id einfach auf null gesetzt, um sich abzumelden.

Ich verwende auch die HttpURLConnection-Bibliothek, um den Benutzernamen / das Passwort bei der Anmeldung zu senden.

Ist das ein anständiger Ansatz für den Umgang mit dieser Situation?

    
volk 09.10.2011, 20:45
quelle

2 Antworten

25

Hier sind einige Dinge, über die Sie nachdenken sollten:

  • Nachdem Sie den Benutzer authentifiziert und die session_id lokal gespeichert haben, senden Sie die session_id in der Kopfzeile jeder Ihrer http-Anfragen. Auf diese Weise senden Sie nicht die Anmeldeinformationen mit jeder Anfrage, sondern die Sitzungs-ID. Und wenn etwas auf der Serverseite der Sitzung passiert, ist die Transaktion nicht erlaubt.
  • Wenn Sie sich abmelden, löschen Sie nicht einfach die session_id auf Ihrer App (Client) -Seite. Senden Sie auch eine Abmeldung an den Server, damit die Sitzung serverseitig beendet werden kann.
  • Wenn die Sitzung auf der Serverseite beendet wird, wollen Sie eines von zwei Dingen tun: A) Der Benutzer wird aufgefordert, sich erneut anzumelden. B) Verwenden Sie die Anmeldeinformationen des Geschäfts, um sich erneut anzumelden, erstellen Sie eine neue Sitzungs-ID und speichern Sie sie erneut in Ihrem Singleton.

Dies garantiert ein bisschen mehr Sicherheit und Funktionalität als nur das Löschen der Session-ID auf Ihrer App-Seite.

    
SBerg413 09.10.2011, 21:28
quelle
0

Diese Strategie wird wahrscheinlich funktionieren. In einer App, an der ich gearbeitet habe, habe ich die Rückgabedaten aus dem Login in den gemeinsamen Einstellungen von Android gespeichert. Wenn der Benutzer sich abgemeldet hat, habe ich die Einstellungen gelöscht. Dadurch konnten Benutzer angemeldet bleiben, auch wenn sie die App geschlossen und später wieder gestartet wurden. Ich hatte ein Authentifizierungstoken, das ich überprüft habe, um zu sehen, ob der Login des Benutzers noch gültig war.

Wie planen Sie den Umgang mit persistenten Logins? Läuft die SessionID ab? Vielleicht möchten Sie über diese Situationen nachdenken, denn wenn ein Benutzer einmal angemeldet ist, werden sie für immer oder so lange angemeldet bleiben, wie die App geöffnet ist.

    
Mike L. 09.10.2011 20:58
quelle