beste vorgehensweise datenhaltung

  • Hallo zusammen,


    ich hätte da mal eine Grundsätzliche Frage.
    Ich bin gerade daran ein App zu entwicklen mit der man Daten von einer bereits bestehenden Webseite abrufen kann. Z.B. News Beiträge, Foren Beiträge und auch die Chat Nachrichten. Der Austausch erfolgt über einen verschlüsselten JSON String.
    Eine Push Notification bei neuen Nachrichten erfolgt über einen Message Broker.


    Aktueller Stand, die News Beiträge kann ich schon alle anzeigen und die Push Notification funktioniert auch.


    Meine Frage nun:
    Ich muss ja bei jeder Verbindung die ich zum Server aufbaue die Benutzerdaten (username und Passwort) zur Authentifizierung mit senden.


    Wie soll ich diese am besten im Android-Gerät "speichern"? Aktuell halte ich die Daten nach der Login-Activity mit SharedPrefernces fest und schiebe diese per "putExtra" von Activity zu Activity... (unschön ich weis)


    wie speichere ich aber nun diese Daten am besten um von jeder Activity auch einfach darauf zugreifen zu können?


    soll ich ne Datenbank dazu erstellen? ich geh mal davon aus das es pro Android -Gerät eher nur einen User geben wird. Ist das dann nicht gleich "too much"?


    oder speichere ich die Zugangsdaten in einer Datei ab? aber jedesmal in einer Activity die Datei öffnen... geht das dann evtl. irgendwann mal an die Performance?


    oder habt ihr noch andere Ideen / Erfahrungen?



    Vielen vielen Dank schon mal



    Viele Grüße Ron

  • Also ich persönlich würde da wie folgt vorgehen:


    Login und gesalzenen SHA256 Hash des Kennwortes (oder mit welchem Hash auch immer die Website das Kennwort abgleicht) in die SharedPreferences packen.
    Nach erfolgreichem Login der Website die Session ID in die SharedPreferences packen. (Du kommst von jeder Activity aus auf die SharedPreferences)


    Bei jeder Kommunikation mit dem Server dann die Session ID verwenden.
    Wenn die Session ID ungültig wird (abgelaufen wegen zu langer Inaktivität oder so), dann raus damit aus den SharedPreferences und zurück auf den Login Screen.


    Eventuell gleich auf OAuth wechseln (Facebook/Twitter/Google+)

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • vielen dank für die schnelle info



    an die Session Id hab ich gar nimmer gedacht ;)


    werd das ganze so implementieren das bei abgelaufener Session automatisch neu eingeloggt wird und man damit eine neue session bekommt... (mal sehen was dann passiert wenn die app in onPause etc. ist. hier soll natürlich keine neue session Id erzeugt werden)




    Viele Grüße Ron

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!