RESTful Api-Authentifizierung für eine android-app
Ich eine Aufgabe haben, wo ich eine E-Mail und Passwort, um einen Benutzer zu authentifizieren und erhalten Sie einen Zugangs-token. Ich habe sowohl den api-key, secret und die Basis-URL. Ich bin nicht erforderlich, um eine Weiterleitungs-URL für die Zuordnung und es war nicht vorgesehen. Ich bin nicht sicher, welcher Ansatz oder welche Bibliothek verwenden. Ich bin ertrinken in der fülle von Informationen und es ist verwirrend mich. Ich muss schon in die richtige Richtung.... jede Art von Hilfe wird willkommen sein. Dank
Sind Ihre Anforderungen für die Verwendung von Oauth 1.0 oder 2.0? Es ist schwer zu sagen, aus deiner Frage. 1.0 verwendet einen "consumer key" und "consumer secret" (also ich ' m denken vielleicht, 1.0), aber es erfordert eine Umleitung (vielleicht auch nicht). 2.0 erfordert keine Umleitung (ok, gut), sondern verwendet eine "client-id" und "client secret" (entspricht nicht der Anforderung). Bitte klären Sie, für weitere Hilfe.
Es ist oauth 2.0.
Check out " Resource Owner Password Credentials Grant aus der OAuth 2.0-Spezifikation. Ich glaube, dass ist das, was der Unterricht erfordert. Es zeigt ein Beispiel token-Anforderung, wobei die client-id (api-key... vielleicht) und client secret sind base64-kodiert in der Authorization-header. Möchten Sie vielleicht klären Sie dies mit Ihrem Lehrer, oder wer gab Ihnen die Abtretung anzuzeigen. Siehe auch Basic Authentication für Sie, wie man richtig formulieren die Authorization-header
die Gliederung ist unten
Für den Zweck dieser übung verwenden Sie die E-Mail - /Passwort-flow skizziert hier erhalten Sie einen token für den Zugriff xxxxxxxxxxxxxx. Bitte beachten Sie, dass die redirect_uri URL-parameter wird nicht benötigt für diese übung nur Benutzername, Passwort, client_id und client_secret. Sie müssen nicht zu kümmern, das token abläuft oder kümmern erfrischend es für diese Zuordnung, Sie sind nur daran interessiert, die access_token Teil der Antwort.Sobald Sie einen access token für den Benutzer, werden alle weiteren API-Aufruf können authentifiziert werden, indem die Autorisierung der HTTP-header werden OAuth2 <access_token>".
Es ist oauth 2.0.
Check out " Resource Owner Password Credentials Grant aus der OAuth 2.0-Spezifikation. Ich glaube, dass ist das, was der Unterricht erfordert. Es zeigt ein Beispiel token-Anforderung, wobei die client-id (api-key... vielleicht) und client secret sind base64-kodiert in der Authorization-header. Möchten Sie vielleicht klären Sie dies mit Ihrem Lehrer, oder wer gab Ihnen die Abtretung anzuzeigen. Siehe auch Basic Authentication für Sie, wie man richtig formulieren die Authorization-header
die Gliederung ist unten
Für den Zweck dieser übung verwenden Sie die E-Mail - /Passwort-flow skizziert hier erhalten Sie einen token für den Zugriff xxxxxxxxxxxxxx. Bitte beachten Sie, dass die redirect_uri URL-parameter wird nicht benötigt für diese übung nur Benutzername, Passwort, client_id und client_secret. Sie müssen nicht zu kümmern, das token abläuft oder kümmern erfrischend es für diese Zuordnung, Sie sind nur daran interessiert, die access_token Teil der Antwort.Sobald Sie einen access token für den Benutzer, werden alle weiteren API-Aufruf können authentifiziert werden, indem die Autorisierung der HTTP-header werden OAuth2 <access_token>".
InformationsquelleAutor logic_error | 2015-06-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Basierend auf Ihre Kommentare, die Anleitung sagt, dass Sie verwenden Resource Owner Password Credentials Grant. Sie können sehen, eine Beispiel Anfrage in der spec.
Die einzige Sache, die vielleicht merkwürdig erscheinen (wenn Sie noch nie angetroffen), ist die
Authorization
- header-Wert. Lesen Sie auf Basic-Authentifizierung. Grundsätzlich ist dieczZCaGRSa3F0MzpnWDFmQmF0M2JW
ist ein base64-Codierung vonusername:password
(eigentlich<client_id>:<client_secret>
).Ohne außerhalb der Bibliotheken (nur standard Java libs) die Anfrage zu machen, haben Sie vielleicht so etwas wie
Den
Base64
ich benutzt habe ist nicht ein standard-Bibliothek-Klasse. Auch dieObjectMapper
ist nicht ein standard-Bibliothek-Klasse. Ich benutzte es, um eine Analyse der token-Antwort auf dieAccessToken
Klasse. Sie können alle parser, die Sie mögen. DieAccessToken
Klasse hat einfach alle möglichen token-WerteVon dort, sobald Sie den token für jede Ressource Anfragen, die Sie machen wollen, müssen Sie nur fügen Sie eine
Authorization
header mitBearer <access_token>
.Es ist eine Klasse aus einem backend-framework ich war mit. Es hatte nichts zu tun mit dem test, den ich Tat, aber ich habe gerade das Projekt, so dass ich nicht haben, erstellen Sie ein anderes Projekt aus diesem einfachen test. Die Klasse wird wohl von keinerlei nutzen für Sie. Obwohl es scheint, Android ist ein Base64-Klasse auch. Ach und der Letzte Absatz, ich denke nicht, dass es zu Ihren Anforderungen passen. Sieht aus wie das auth-System sollte sein
OAuth2
stattBearer
InformationsquelleAutor Paul Samsotha
Ich würde Ihnen empfehlen, die retrofit Bibliothek zu tun.
Lassen Sie uns sagen, dass Ihre URL-Basis ist http://baseurl.com/api und führen Sie eine GET-Anforderung an /login Weitergabe der E-Mail und Passwort. Ich gehe davon aus, dass Ihr API-zurück-Benutzer-Objekt als JSON.
Api.java
Wo Sie brauchen, um die API-Aufruf:
Ich hoffe dieses Beispiel kann dir helfen. Vergessen Sie nicht, Lesen Sie die retrofit Dokumentation
Für den Zweck dieser übung verwenden Sie die E-Mail - /Passwort-flow skizziert hier erhalten Sie einen token für den Zugriff xxxxxxxxxxxxxx. Bitte beachten Sie, dass die redirect_uri URL-parameter wird nicht benötigt für diese übung nur Benutzername, Passwort, client_id und client_secret. Sie müssen nicht zu kümmern, das token abläuft oder kümmern erfrischend es für diese Zuordnung, Sie sind nur daran interessiert, die access_token Teil der Antwort.Sobald Sie einen access token für den Benutzer, werden alle weiteren API-Aufruf können authentifiziert werden, indem die Autorisierung der HTTP-header werden OAuth2 <access_token>".
InformationsquelleAutor lutchobandeira