Wie man die Authentifizierung der Benutzer in einer mobilen Anwendung
Ich bin interessiert in der besten Weise zu tun, Benutzer-auth in einer mobilen app. Im moment ist die Einrichtung Recht einfach. Ich bin die Speicherung von Benutzername und Passwort auf der app und senden Sie es an die api jedes mal, wenn ich brauche zu laufen eine eingeschränkte Abfrage.
Diese ich fühle, ist wahrscheinlich der falsche Weg zu gehen über diese.
Wäre ein besserer Weg, um zu senden den Benutzernamen und das Passwort, wenn der user sich anmeldet, und speichern Sie dann die Benutzer-id? Das problem dabei ist, dass dann die api akzeptiert eine Benutzer-id und nicht einen Benutzernamen und ein Passwort. Eine Benutzer-id werden viel leichter zu "erraten" und böswillige Personen würden in der Lage sein zu übermitteln req, um die api mit zufällig ausgewählten user-id Handlungen durchführen, die unter Ihrem Konto. Ich habe einen api-Schlüssel. Ist das denn sicher genug?
Das Problem ist, dass ich starten will die Integration von twitter und facebook oauth in der app. Ich habe nicht viel gelesen, aber ich denke, erhalten Sie einen "token". Wie würde das funktionieren mit dem set-up, die Sie vorgeschlagen sind? Würde es nutzen, um zu erstellen ein token in meiner eigenen Datenbank, der Benutzer und über die token (egal ob mine, facebook oder twitter) als Zulassung? Oder würde es Sinn machen, zu halten, jeden Dienst getrennt und mit Ihnen umzugehen getrennt?
Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der richtige Weg wäre, zu generieren auth-token auf dem server, wenn der Benutzer anmeldet und senden Sie dieses token bei der Anmeldung beantworten. Dann wird dieser token verwendet wird, die in nachfolgenden Anfragen.
Dies bedeutet, dass die server müssen im Auge behalten auth-Token erzeugt. Sie können auch verfolgen token-Erstellung mal den Token verfallen nach einiger Zeit.
Token muss eine hinreichend lange zufällige Zeichenfolge, so dass es nicht leicht zu erraten ist. Wie Sie dies tun wurde, antwortete vor: So erzeugen Sie einen zufälligen alpha-numerischen string?
Persönlich bevorzuge ich den UUID-Ansatz.
Update:
Dieses problem wurde bereits gelöst, die in web-Browsern, die über cookies und sessions. Sie können die Wiederverwendung dieser Mechanismus in Ihrem Android-Anfragen (obwohl einige REST-Puristen widerlegen diesen Ansatz):
Aktivieren-Sitzungen auf dem server.
Wenn der Benutzer loggt sich in einen server hinzufügen einige Daten zur session, zum Beispiel dem Zeitpunkt der Anmeldung:
Da-Sitzungen aktiviert sind, müssen Sie auch aktivieren Sie die Unterstützung für cookies in Ihrem HttpClient Anforderungen: Die Verwendung von Cookies über die Aktivitäten bei der Verwendung von HttpClient
Jedes mal, wenn eine Anfrage, server soll prüfen, ob session enthält
timeOfLogin
Attribut. Ansonsten sollte es wieder HTTP-401-Antwort.Wenn der user sich ausloggt, die Anruf-server-logout-url und cookies löschen auf dem client.