Wie ist die Erlangung der Access-Token in LinkedIn OAuth-2.0-Authentifizierung gemacht werden soll, wie eine POST-Anforderung?
Sorry, wenn dies ist eine einfache Frage.
Ich bin ein LinkedIn-Neuling und bin versucht, Runden das OAuth 2.0 Verfahren um die 60-Tage - "access token", die nach Erlangung der vorübergehenden "authorization code", wie hier beschrieben https://developer.linkedin.com/documents/authentication.
Hatte ich keine Probleme mit dem Teil 3a - Einholung der vorläufige Genehmigung code. Ich habe einfach Weiterleitung der Benutzer auf die LinkedIn-URL:
https://www.linkedin.com/uas/oauth2/authorization?response_type=code
&client_id=YOUR_API_KEY
&scope=SCOPE
&state=STATE
&redirect_uri=YOUR_REDIRECT_URI
und nachdem der Benutzer die Berechtigung erteilt, die Sie umgeleitet werden zurück zu meiner app, und die zurückgegebenen Parameter werden überprüft, um zu sehen, ob alles gut ging und die temporäre authentication code abgerufen wird als einer der Parameter form zurückgegeben, wie in den docs.
Allerdings bin ich verwirrt, wie geht es weiter mit Schritt 3b - Austausch, den Authorisierungs-code für eine access-token (die dann verwendet werden können, um API-Anfragen). Meine Verwirrung ist denn auch die docs zeigen, zeigen, was scheint, eine typische GET URL mit Parameter, es sagt, "POST" weiter. Also ich glaube, dass ein POST-request gemacht werden muss, anstatt einen zu BEKOMMEN.
Aber was bedeuten Sie durch das? Warum machen die docs geben eine URL mit query-Parametern, anstatt detailliert die benötigten POST-Anfrage mit einer URL und wie die Parameter formatiert werden sollte in den Körper? Ich bin im Grunde nur nicht sicher, wie ich das Formular meine Anfrage bei Schritt 3b.
Ich gehe davon aus, dass ich nicht einfach umleiten, meine Benutzer die 3b-URL, wie ich es mit dem 3a-URL, richtig? Das wäre einfach, wenn ich könnte.
Die Sprache, die ich verwende, ist server-side JavaScript. Ich umleiten kann. Ich kann form und machen POST-Anfragen, wenn ich weiß, das benötigte format. Kann ich erstellen, Anfragen BEKOMMEN. Ich bin einfach nicht vertraut mit dieser situation, wo die docs, die sagen, die Anfrage sollte so Aussehen:
https://www.linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code
&code=AUTHORIZATION_CODE
&redirect_uri=YOUR_REDIRECT_URI
&client_id=YOUR_API_KEY
&client_secret=YOUR_SECRET_KEY
aber gleichzeitig darauf hinweisen, dass es eine POST-Anforderung.
Gibt es einige short-cut-Methode verwenden, die URL ist, um eine POST-Anfrage? Oder soll ich verstehen, wie man die URL und schalten Sie ihn in einer typischen post-Anfrage und stellen alle Parameter in den Körper und machen einfach mal meine Anfrage an https://www.linkedin.com/uas/oauth2/accessToken selbst?
Sorry, wenn es etwas ist, das sollte klar sein. Es ist nicht etwas, was ich erlebt haben, bevor.
Jede Hilfe würde hier geschätzt werden.
Dank,
doug
InformationsquelleAutor Doug Lerner | 2014-12-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn das spec senden Sie die Parameter in einem POST mit
Content-Type
eingestelltapplication/x-www-form-urlencoded
, also normale form post, aber es stellt sich heraus, dass LinkedIn auch der direkte Austausch der code für ein token mit einer Ebene ERHALTEN, wobei die Parameter im query-Teil der URL, wie Ihr Beispiel zeigt. Es ist nicht empfohlen (und in Verletzung der spec) die Verwendung von GET als Parameter am Ende auf logs, browser-history und die zu BEKOMMEN ist mehr anfällig für hijacking-Angriffe.Hier ist eine (bearbeitete) CURL Spur von einem BEKOMMEN, um LinkedIn:
es ist eine Verletzung der OAuth-2.0-Spezifikationen; die POST-URL ist nur
https://www.linkedin.com/uas/oauth2/accessToken
in der Tat.OK. Danke. Ich werde versuchen, dass. Auf der nächsten Seite, nachdem die docs sind ein bisschen verwirrend. Sie haben ein PHP-Beispiel. Ich bin nicht mit PHP, aber es sieht in diesem Beispiel, als ob Sie über die gesamte URL mit allen query-Parameter noch in der gleichen Zeit, irgendwie, der angibt, es ist ein BEITRAG. Trotzdem werde ich versuchen, einen BEITRAG mit, dass die URL, und erstellen Sie eine geeignete Stelle. Danke.
InformationsquelleAutor Hans Z.
Betrachten Sie als ein tutorial und es wird reibungslos fahren Sie auf die access-token 🙂
Schritt 1:
Nachdem Sie erstellt haben die app:
schreiben, wie ich Folgen mit der gleichen
Hatte ich einen Ordner erstellt "/var/www/html/code"
Schritt 2:
nennen:
Antwort:
Erhalten Sie unterschiedliche Antworten, aber die Struktur wird identisch sein.
Schritt 3:
The redirect_uri does not match the registered value
(aber es ist wirklich übereinstimmen). Edit: vergessen Sie nicht, drücken die Schaltfläche "Aktualisieren" nach dem hinzufügen eines neuen Autorisierten URL. Danke. Es sollte die akzeptierte Antwort.ich habe eine dumme Frage, die redirect-url, die Sie angegeben haben, ist es eine live-Seite auf Ihrem lokalen Umfeld oder es kann alles sein, @chinmay
Es kann alles sein , nur sendet Sie die URL (die Sie zur Verfügung gestellt) hängen Sie den Parameter @Venki, können Sie versuchen, xyz als url erhalten Sie die Antwort als xyz/?code=sds&state=23
danke für deine Hilfe, habe es funktioniert, ich habe versucht es per Postboten, wo infact, die ich brauchte, um es zu kopieren, in den browser-Zugriff zu ermöglichen.
Btw Linkedin hat sich den schlimmsten öffentlichen Verkleidung API, die ich gesehen habe.
InformationsquelleAutor chinmay rakshit