Android App löscht Session automatisch bei onDestroy?

1 Antwort

Ich verstehe dein Problem noch nicht ganz.

Du hast eine App mit Login. Nach einem erfolgreichen Login bekommst/generierst du eine SessionID, welche du über SharedPreferences abspeicherst.

Der Login läuft vermutlich über ein Server. Die erhaltenen SessionID schickst du dann im HTTP Header mit, damit du die Daten und z.B. kein 403/Forbidden zurückbekommst.

Willst du jetzt bei onDestroy, dass die SessionID automatisch gelöscht wird oder soll diese auch für den zweiten Start gespeichert bleiben?

Wenn du die ID nicht dauerhaft speichern möchtest, dürfte SharedPreferences die falsche Umsetzung sein. Du solltest die ID dann über ein anderen Weg über die Laufzeit speichern, die Variable beim Beenden automatisch geleert wird.

Wenn die ID dauerhaft gespeichert bleiben soll, ist SharedPreferences eine gute Möglichkeit. Die ID sollte auch noch beim nächsten Start vorhanden sein. Ob die ID beim Server noch ihren Job macht, ist die nächste Frage.

Wenn die SessionID beim nächsten Start ungültig ist, solltest du nachschauen, wie der Login bei der Webseite/Server genau funktioniert. Es könnte sein, dass die SessionID an ein anderen Faktor gekoppelt ist, welcher sich beim Neustart der Anwendung ändert. Wenn der eneute Start länger her ist, könnte die Session auch zeitlich abgelaufen sein.

Eine andere Möglichkeit den Login zu speichern, wäre das Sichern der Login Daten wie z.B. Nutzername und Passport. Beim Starten der App könntest du automatisch den Login Prozess durchführen.

Eine bessere Umsetzung wäre, wenn du z.B. ein JsonWebToken (JWT) nutzen könntest. Der JWT beinhaltet direkt den Nutzername mit einer Signatur. Der Server muss also nicht eine Session mit der lokalen DB abgleichen. Den JWT gibt man auch im Header mit. Wenn der Server es unterstützt oder du es selber im Server integrieren kannst, solltest du diesen Weg nehmen.

wer113 
Fragesteller
 27.05.2022, 15:41

Wenn ich aus der App rausgehe, wird ja onDestroy aufgerufen. Leider löscht er die Session Datei. Und wenn ich rein möchte, ist die Session Datei weg, aber Die SessionID ist in den ShaPref noch drinnen. Ich verlasse die App max. 10 sec.

Wenn ich angemeldet sein möchte, dann soll nixs gelöscht werden, auch wenn ich die App komplett schließe(onDestroy).

Es soll nur gelöscht gelöscht werden, wenn ich nicht angemeldet sein möchte.

Aber Die App löscht immer die Datei...

Wo wird die Session Inhalt gespeichert auf dem Handy und wie verhindere ich die Löschung? Den Die SessionID in den Shapref bleibt bestehen...

Und in der Sesion weird nur Kundennummer, Email, eingeloggtbleibencode,...

Hättest du eine Idee, wiso nur bei onDestroy es gelöscht wird??

0