2016-06-23 8 views
0

Ich erstelle eine Android-App, die zusammen mit dem Django Rest Framework ein Django-Backend verwendet. Ich habe die OAuth2-Dokumentation gelesen, kämpfe aber immer noch um einige wichtige Punkte in Bezug auf die Authentifizierung. Verwenden der OAuth2.0-Authentifizierung von Django mit Android mit Volley

Das sind meine wichtigsten Fragen/Dinge, die ich mit bin zu kämpfen:

  • In OAuth2, die mir gegeben, die oppurtunity 'Apps' zu erstellen. Würde die "App" in diesem Fall spezifisch für meine Android-App sein (und vermutlich würde ich in Zukunft eine andere für eine potenzielle iOS-App erstellen?).

  • Werden alle Benutzer der (Android) App dasselbe Token verwenden oder wird jedem Benutzer ein individuelles Token gewährt?

  • Ich benutze die Volley-Bibliothek für Android, um mit Netzwerken umzugehen. Wie gehe ich vor, um die Android-App dazu zu bringen, die benötigten Zugangsdaten zu speichern? Würde ich das Token, die ID und das Geheimnis oder nur das Token speichern?

Wenn ist es erwähnenswert, ich plane nicht, Social-Media-Logins auf Hinzufügen (Facebook, Google, etc) Ich werde nur Anmeldung mit einem Benutzernamen und Passwort sein.

Es tut mir leid, wenn diese Fragen ein bisschen elementar erscheinen, das ist meine erste Erfahrung wird Authentifizierung jeglicher Art.

Danke

Antwort

3

Ich werde das Wort "App" verwenden bedeuten zwei verschiedene Dinge:

  1. app, OAuth2 App, um anzuzeigen, die Sie für Ihre mobile App würden erstellen registrieren (s)

  2. App, um mobile App anzugeben.

Antwort 1:

Ein app ist im Grunde eine Art und Weise eine client der Registrierung (in diesem Fall Ihre mobile App) mit dem resource server (in diesem Fall, Sie Django Backend). Sie können auf beide Arten zwei separate apps oder eine einzelne app für Ihre Android- und iOS-Apps erstellen. Sofern Sie nicht vorhaben, Benutzern einer App mehr Rechte oder Funktionen zu geben, sehe ich keinen Vorteil darin, zwei separate apps zu erstellen.

Antwort 2:

Jeder Benutzer ein anderes access token gewährt wird.

Antwort 3:

Sie werden client_id und client_secret in irgendeiner Art und Weise sicher auf Ihrer mobilen App (s) speichern müssen. Denn das wird Ihnen helfen, einen access token für einen Benutzer an erster Stelle zu gewinnen. Sie speichern auch access token, nachdem Sie es erhalten haben, da es benötigt wird, um authentifizierte HTTP-Anfragen zu machen.

Weitere Informationen zum Oauth2-Protokoll im Allgemeinen finden Sie unter this antwort und Oauth2-Protokoll RFC.

+0

Okay, vielen Dank! Noch eine Frage zur Klärung: ** client_id ** und ** client_secret ** sind für jede Telefon-/App-Installation gleich, ** ** ** ** ** ist jedoch für jeden Benutzer anders? – ethanzh

+0

Ja, das ist, was ich oben geschrieben habe, Zugriffs-Token wird für jeden Benutzer anders sein –