Frage

Ich habe die Facebook-Grafik-API (verwendet OAuth 2.0 für die Authentifizierung) seit einer Zeit lang erfolgreich. Ich muss jetzt meine eigene API schreiben, mit der Entwicklern auf ähnliche Weise mit ihm verbunden werden können. Ich habe in verschiedene Bibliotheken gesucht, aber ich hätte gerne etwas ein wenig schlanker, also habe ich mich entschieden, meine eigenen zu rollen. Wenn Sie den Code ansehen, muss ich einen Benutzer auf Facebook authentifizieren, es sieht relativ einfach aus, aber korrigieren Sie mich, bitte korrigieren Sie mich, wenn ich von der Strecke gehe.

Zuerst müsste ich eine sichere Seite angeben, die der Verbraucher umleiten müsste. zB https://api.mydomain.com/oAuth/Authorize?client_id=consumer_key& redirect_url= callback_url . Der Benutzer würde die Anwendung überprüfen, dann würde ich wieder in die URL umleiten, die in der Callback-URL mit der OAuth_Token in der Query-Zeichenfolge bereitgestellt wird. Ich denke, ich könnte hier einfach eine zufällige einzigartige Zeichenfolge für den OAuth_Token generieren und gegen den Benutzer für diesen bestimmten Verbraucher speichern (Bearbeiten: Bitte sehen Sie sich die untenstehende Antwort an, dies sollte für jede Verbraucheranwendung und nicht für den Benutzer eindeutig sein). .

das ist Schritt 1 den Weg. Ich muss jetzt eine zweite Secure-Seite angeben, die der Verbraucher eine Webanforderung auslösen würde. zB https://api.mydomain.com/oauth/access_token?client_id= Consumer_key & client_secret= consumer_secret & oauh_token= oAuth_token_returnd_above . Dies würde den Verbraucher ermöglichen, das oben zurückgegebene oAuth_token für ein Zugangsstoken auszutauschen. Ich würde wieder einfach eine zufällige einzigartige Saite generieren und gegen den Benutzer für diesen bestimmten Verbraucher speichern.

Jetzt kann meine API den Access_token für Methoden akzeptieren, die versuchen, Informationen, die für den Benutzer, der es verwendet, zu ergreifen.

Ich würde gerne wissen, ob ich Dinge richtig verstanden habe. Die OAuth 2.0-Spec erscheint extrem trivial, wenn dies der Fall ist. Warum müssen wir auch den OAuth_Token mit einem Access_token tauschen? Ich habe meine eigene Idee, aber ich würde es schätzen, wenn jemand dazu beitragen könnte, dies zu klären.

Ich würde Ihr Feedback wirklich freuen, da ich nicht weitermachen möchte, und die Stunden implementieren, wenn es völlig falsch ist.

danke

War es hilfreich?

Lösung

eigentlich Protokoll-Flussdiagramme wären äußerst hilfreich, um Spezifikationen wie der OAUTH 2 zu visualisieren, aber es gibt nur einige Teilmenge. Da ich gerade nur eine Client-Side-On-OAuth 2-Bibliothek implementiert habe, kann ich überprüfen, ob Sie auf dem richtigen Weg sind. Aber hier ist ein Fang:

oauh_token gehört zu Ihrer Clientanwendung (d. H. Ein Desktop-Facebook-Reader), der Ihre Anwendung authentifiziert (genau wie eine ID). Sie senden diese ein, um einen Access_token zurückzugeben, der für Ihre Anwendung spezifisch ist und Benutzer angemeldet ist, mit dem Sie mit dem Benutzer auf begrenzte Ressourcen zugreifen können.

Hier ist ein grundlegender Desktop-App-Authentifizierungsprozess (genommen von: http://developers.gigya. com / 020_developer_guide / 85_rest / oauth2 )

Rest OAuth 2.0

eigentlich ein Flow-Digram mit Timeline (von oben nach unten, genommen von: http://www.ibm.com/developerworks/web/library/wa-oAutsupport/?ca=drs- )

Protokollfluss

und schließlich ist das vollständige Verfahren: (genommen von http://h2anetwork.org/projectdocs/ Dpi / dpi_framework.html )

OAuth-Protokollfluss

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top