Autorisierungscode gewähren
-
Autorisierungsanfrage
-
Die Anwendung muss zunächst festlegen, welche Berechtigungen sie anfordert, und den Benutzer anschließend an einen Browser weiterleiten, um dessen Berechtigung einzuholen. Um diesen Autorisierungsvorgang zu initiieren, erstellen Sie eine URL wie unten dargestellt und leiten Sie den Browser des Endbenutzers zu dieser URL um:
STARTE http://<wp_base_url>/wp-json/moserver/authorize
?response_type=code
&client_id= <client_id_goes_here>
&redirect_uri= <callback_url>
&scope= <permissions_requesting>
&state= <security_token>
Antworttyp=Code: Die Art der Antwort, die Sie erwarten. Um einen Autorisierungscode zu erhalten, muss dieser einen bestimmten Wert haben.
CodeDies teilt dem Autorisierungsserver mit, dass die Anwendung den Autorisierungsablauf initiiert.
Kunden ID : Die vom OAuth-Anbieter bereitgestellte Client-ID.
Redirect_uri: Callback-URL, zu der der Benutzer weitergeleitet wird, sobald er den Zugriff auf Ihre App erlaubt oder verweigert.
Umfang : Eine oder mehrere durch Leerzeichen getrennte Zeichenketten, die die von Ihrer Anwendung angeforderte Berechtigung angeben.
Zustand : Die Anwendung generiert eine zufällige Zeichenkette und fügt diese der Anfrage bei. Anschließend sollte sie überprüfen, ob nach der Autorisierung der App durch den Benutzer derselbe Wert zurückgegeben wird.
Wenn der Nutzer den Zugriff auf Ihre App erlaubt, wird sein Browser zur angegebenen Umleitungs-URL weitergeleitet und die Anfrage enthält
Code und Zustand Parameter in der Abfragezeichenfolge.
Beispielsweise kann der Benutzer zu einer URL wie z. B. zurückgeleitet werden
https://example-app.com/redirect
?code=<authorization-code>
&state=<security_token>
Das Code Es handelt sich um einen Autorisierungscode, der gegen ein Zugriffstoken eingetauscht werden kann. Er wird vom Autorisierungsserver generiert und ist relativ kurzlebig.
Das Zustand ist dasselbe Sicherheitstoken, das die Anwendung ursprünglich in der Anfrage festgelegt hat.
Token-Anfrage
-
Wenn der Endbenutzer Ihrer App Zugriff gewährt hat und Sie einen Autorisierungscode erhalten, können Sie den Autorisierungscode gegen ein Zugriffstoken eintauschen, indem Sie eine POST-Anfrage an den Token-Endpunkt senden.
- Das Folgende ist ein Beispiel für eine POST-Anfrage:
jetzt lesen http://<wp_base_url>/wp-json/moserver/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&
code=<authorization_code>&
client_id=<client_id>&
client_secret=<clientSecret>&
redirect_uri=<redirect_uri>
Hier finden Sie die Beschreibung für jeden Anforderungsparameter.
-
grant_type=authorization_code: Die Art der von Ihnen bereitgestellten Berechtigung. Dies zeigt an, dass die Anwendung den Berechtigungstyp „Autorisierungscode“ verwendet.
-
Code: Der im vorherigen Schritt erhaltene Autorisierungscode ist hier enthalten.
-
Redirect_uri: Derselbe URI, der zuvor in der Autorisierungsanfrage angegeben wurde.
-
Kunden ID : Die vom OAuth-Anbieter bereitgestellte Client-ID.
-
client_secret: Das vom OAuth-Anbieter bereitgestellte Client-Geheimnis.
Am Token-Endpunkt werden alle Parameter der Anfrage überprüft, um sicherzustellen, dass der Code nicht abgelaufen ist und Client-ID und -Geheimnis übereinstimmen. Bei erfolgreicher Anfrage wird ein Zugriffstoken generiert und in der Antwort zurückgegeben.
HTTP/1.1 200 OK Content-Type: application/json Cache-Control: no-store { „access_token“: „hkjher92u9eu2u3uihi2eh9293“, „token_type“: „bearer“, „expires_in“:3600, „scope“: „profile“, „id_token“: „“ }
Hier ist die Beschreibung für jeden Parameter, der in der Antwort empfangen wird.
-
Zugangstoken : Zugriffstoken für den Userinfo-Endpunkt.
-
token_type: OAuth 2.0-Token-Typwert. Der Wert muss sein Träger.
-
Läuft ab in : Die Ablaufzeit für das Zugriffstoken.
-
Umfang: Eine oder mehrere durch Leerzeichen getrennte Zeichenketten, die die von Ihrer Anwendung angeforderte Berechtigung angeben.
-
id_token: Das ID-Token ist ein Sicherheitstoken, das Ansprüche über die Authentifizierung eines Endbenutzers durch einen Autorisierungsserver bei Verwendung eines Clients sowie gegebenenfalls weitere angeforderte Ansprüche enthält.
Wenn die Anfrage fehlschlägt, hat die Antwort den Status
404 Bad Request und wird folgenden Inhalt haben:
„error“: „invalid_request“, „error_description“: „Eine detailliertere Beschreibung des Fehlers für den Entwickler Ihrer App.“
Ressourcenanforderung
-
Wenn die Token-Anfrage erfolgreich ist, erhalten Sie
Zugangstoken in der Antwort, die verwendet werden kann, um über die API auf die geschützten Ressourcen zuzugreifen.
-
Benutzerinfo-Anfrage: Nachfolgend ein nicht-formatives Beispiel einer Userinfo-Anfrage:
STARTE http://<wp_base_url>/wp-json/moserver/resource
Host: server.example.com
Authorization: Bearer <access_token>
Der Ressourcenserver validiert und verifiziert das Zugriffstoken und prüft dessen Gültigkeit. Ist die Ressourcenanfrage gültig, gibt der Ressourcenserver die Ansprüche zurück, die durch ein JSON-Objekt mit einer Sammlung von Namen-Wert-Paaren für die Ansprüche repräsentiert werden.
Erfolgreiche Userinfo-Antwort:
Die UserInfo-Claims MÜSSEN als Elemente eines JSON-Objekts zurückgegeben werden.
Unten ist das Beispiel:
{ „id“: „1“, „username“: „abc“, „first_name“: „xyz“, „last_name“: „example“, „picture“: „https://example.com/-kwtzesU/photo .jpg", "email": "abc@example.com", "locale": "en",... }
Implizite Codegewährung
-
Autorisierungsanfrage
-
Die Anwendung muss zunächst festlegen, welche Berechtigungen sie anfordert, und den Benutzer anschließend an einen Browser weiterleiten, um die entsprechenden Berechtigungen einzuholen. Um diesen impliziten Ablauf zu initiieren, erstellen Sie eine URL wie unten dargestellt und leiten Sie den Browser des Endbenutzers zu dieser URL um:
Erhalten Sie http://<wp_base_url>/wp-json/moserver/authorize
?response_type=token
&client_id= <client_id_goes_here>
&redirect_uri= <callback_url>
&scope= <permissions_requesting>
&state= <security_token>
Antworttyp=Token: Die Art der erwarteten Antwort. Dies signalisiert dem Autorisierungsserver, dass die Anwendung den impliziten Ablauf initiiert. Beachten Sie den Unterschied zum Autorisierungscode-Ablauf, bei dem dieser Wert auf „Code“ gesetzt ist.
Kunden ID : Die vom OAuth-Anbieter bereitgestellte Client-ID.
Redirect_uri: Callback-URL, zu der der Benutzer weitergeleitet wird, sobald er den Zugriff auf Ihre App erlaubt oder verweigert.
Umfang : Eine oder mehrere durch Leerzeichen getrennte Zeichenketten, die die von Ihrer Anwendung angeforderte Berechtigung angeben.
Zustand : Die Anwendung generiert eine zufällige Zeichenkette und fügt diese der Anfrage bei. Anschließend sollte sie überprüfen, ob nach der Autorisierung der App durch den Benutzer derselbe Wert zurückgegeben wird.
Wenn der Nutzer den Zugriff auf Ihre App erlaubt, wird sein Browser zur angegebenen Umleitungs-URL weitergeleitet und die Anfrage enthält
Zeichen und Zustand Parameter in der Abfragezeichenfolge.
Beispielsweise kann der Benutzer zu einer Rückruf-URL wie z. B. zurückgeleitet werden
https://callback-url?
#access_token=<access_token>
&token_type=Bearer
&expires_in=3600
&scope=<permissions_requesting>
Beachten Sie die beiden wesentlichen Unterschiede zwischen diesem Ablauf und dem Autorisierungscode-Ablauf: Anstelle des Autorisierungscodes wird in der Antwort das Zugriffstoken zurückgegeben.
Der Client kann dann die verwenden Zugangstoken um auf geschützte Ressourcen vom Ressourcenserver zuzugreifen.
Hier folgt die Beschreibung jedes in der Antwort empfangenen Parameters.
-
Zugangstoken : Zugriffstoken für den Userinfo-Endpunkt.
-
token_type: OAuth 2.0-Token-Typwert. Der Wert muss sein Träger.
-
Läuft ab in : Die Ablaufzeit für das Zugriffstoken.
-
Umfang: Eine oder mehrere durch Leerzeichen getrennte Zeichenketten, die die von Ihrer Anwendung angeforderte Berechtigung angeben.
Ressourcenanforderung
-
Der UserInfo-Endpunkt ist eine durch OAuth 2.0 geschützte Ressource, die Ansprüche über den authentifizierten Endbenutzer zurückgibt. Die zurückgegebenen Ansprüche werden durch ein JSON-Objekt dargestellt, das eine Sammlung von Namen-Wert-Paaren für die Ansprüche enthält.
-
Benutzerinfo-Anfrage: Nachfolgend ein nicht-formatives Beispiel einer Userinfo-Anfrage:
STARTE http://<wp_base_url>/wp-json/moserver/resource
Host: server.example.com
Authorization: Bearer <access_token>
Erfolgreiche Userinfo-Antwort:
Die UserInfo-Claims MÜSSEN als Elemente eines JSON-Objekts zurückgegeben werden.
Unten ist das Beispiel:
{ „id“: „1“, „username“: „abc“, „first_name“: „xyz“, „last_name“: „example“, „picture“: „https://example.com/-kwtzesU/photo .jpg", "email": "abc@example.com", "locale": "en",... }
Passwortgewährung
-
Der Grant-Typ „Resource Owner Password“ (oder kurz „Passwort“) wird hauptsächlich dann verwendet, wenn die Anwendung ein hohes Maß an Vertrauen genießt. In dieser Konfiguration übermittelt der Benutzer seine Anmeldeinformationen für den Ressourcenserver (Benutzername/Passwort) an die Client-Anwendung, die diese in einer Zugriffstoken-Anfrage sendet.
-
Token-Anfrage
-
Der Password Grant ist einer der einfachsten OAuth-Grants und umfasst nur einen Schritt: Die Anwendung stellt ein herkömmliches Anmeldeformular mit Benutzername und Passwort bereit, um die Anmeldedaten des Benutzers zu erfassen, und sendet eine POST-Anfrage an den Server, um das Passwort gegen ein Zugriffstoken auszutauschen. Die von der Anwendung gesendete POST-Anfrage sieht beispielsweise wie folgt aus.
jetzt lesen http://<wp_base_url>/wp-json/moserver/token
Host: authorization-server.com
Content-type: application/x-www-form-urlencoded
grant_type=password
&username=exampleuser
&password=12345678
&client_id=xxxxxxxxxx
&client_secret=xxxxxxxxxx
Die POST-Parameter in dieser Anfrage werden unten erläutert.
-
grant_type=Passwort: Dies teilt dem Server mit, dass wir den Passwort-Grant-Typ verwenden.
-
Benutzername = Der Benutzername, den der Benutzer in der Anwendung eingegeben hat.
-
Passwort = Das Passwort, das der Benutzer in der Anwendung eingegeben hat.
-
client_id= Die öffentliche Kennung der Anwendung, die der Entwickler bei der Registrierung erhalten hat.
-
client_secret= Das vom OAuth-Anbieter bereitgestellte Client-Geheimnis.
Am Token-Endpunkt werden alle Parameter der Anfrage überprüft, um sicherzustellen, dass der Code nicht abgelaufen ist und Client-ID und -Geheimnis übereinstimmen. Bei erfolgreicher Anfrage wird ein Zugriffstoken generiert und in der Antwort zurückgegeben.
HTTP/1.1 200 OK Content-Type: application/json Cache-Control: no-store { „access_token“: „hkjher92u9eu2u3uihi2eh9293“, „token_type“: „bearer“, „expires_in“:3600, „scope“: „profile“, „id_token“: „“ }
Der Client kann dann die verwenden Zugangstoken um auf geschützte Ressourcen vom Ressourcenserver zuzugreifen.
Hier folgt die Beschreibung jedes in der Antwort empfangenen Parameters.
-
Zugangstoken : Zugriffstoken für den Userinfo-Endpunkt.
-
token_type: OAuth 2.0-Token-Typwert. Der Wert muss sein Träger.
-
Läuft ab in : Die Ablaufzeit für das Zugriffstoken.
-
Umfang: Eine oder mehrere durch Leerzeichen getrennte Zeichenketten, die die von Ihrer Anwendung angeforderte Berechtigung angeben.
Ressourcenanforderung
-
Der UserInfo-Endpunkt ist eine durch OAuth 2.0 geschützte Ressource, die Ansprüche über den authentifizierten Endbenutzer zurückgibt. Die zurückgegebenen Ansprüche werden durch ein JSON-Objekt dargestellt, das eine Sammlung von Namen-Wert-Paaren für die Ansprüche enthält.
-
Benutzerinfo-Anfrage: Nachfolgend ein nicht-formatives Beispiel einer Userinfo-Anfrage:
STARTE http://<wp_base_url>/wp-json/moserver/resource
Host: server.example.com
Authorization: Bearer <access_token>
Erfolgreiche Userinfo-Antwort:
Die UserInfo-Claims MÜSSEN als Elemente eines JSON-Objekts zurückgegeben werden.
Unten ist das Beispiel:
{ „id“: „1“, „username“: „abc“, „first_name“: „xyz“, „last_name“: „example“, „picture“: „https://example.com/-kwtzesU/photo .jpg", "email": "abc@example.com", "locale": "en",... }
Gewährung von Client-Anmeldeinformationen
-
Die Client Credentials-Berechtigung kann für die Authentifizierung zwischen Rechnern verwendet werden. Dabei wird kein bestimmter Benutzer autorisiert, sondern die Anmeldeinformationen werden überprüft und ein generisches Zugriffstoken zurückgegeben.
-
Token-Anfrage
-
Um ein Zugriffstoken zu erhalten, sendet der Client einen POST-API-Aufruf mit den Werten für Client-ID und Client-Geheimnis, die er von einer registrierten Entwickler-App erhalten hat, wie folgt.
jetzt lesen http://<wp_base_url>/wp-json/moserver/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&
client_id=<client_id>&
client_secret=<clientSecret>&
redirect_uri=<redirect_uri>&
scope=<permisssions_requested>
Anfrageparameter:
- Die POST-Anfrageparameter werden unten erläutert.
-
grant_type=client_credentials: Dies teilt dem Server mit, dass wir den Client-Credentials-Grant-Typ verwenden.
-
client_id= Die öffentliche Kennung der Anwendung, die der Entwickler bei der Registrierung erhalten hat.
-
client_secret: Das vom OAuth-Anbieter bereitgestellte Client-Geheimnis.
-
Redirect_uri: Callback-URL, zu der der Benutzer weitergeleitet wird, sobald er den Zugriff auf Ihre App erlaubt oder verweigert.
-
Umfang : Eine oder mehrere durch Leerzeichen getrennte Zeichenketten, die die von Ihrer Anwendung angeforderte Berechtigung angeben.
Sind die Anmeldeinformationen gültig, erhält die Anwendung ein signiertes JSON Web Token oder Zugriffstoken, den Token-Typ (Bearer) und die Gültigkeitsdauer in Unix-Zeit zurück.
Beispielantwort
{ "Zugangstoken": , „expires_in“: 600, „token_type“: „Bearer“ }
Antwortelemente:
-
Zugangstoken : Zugriffstoken für den Userinfo-Endpunkt.
- verfällt in Die Ablaufzeit für das Zugriffstoken.
-
token_type: OAuth 2.0-Token-Typwert. Der Wert muss sein Träger.
Ressourcenanforderung
- Das Gewährung von Client-Anmeldeinformationen nicht unterstützt Ressourcenanforderung.
Token-Zuteilung aktualisieren
-
Ein Aktualisierungstoken ermöglicht es der Anwendung, ein neues Zugriffstoken oder ID-Token auszustellen, ohne den Benutzer erneut authentifizieren zu müssen. Dies funktioniert, solange das Aktualisierungstoken nicht widerrufen wurde.
-
Token-Anfrage
-
Die Antwort auf die Token-Anfrage sollte ein Zugriffstoken und ein Aktualisierungstoken enthalten.
{ "access_token": "etMv23....429hiU32Hri", "refresh_token": "GEbRxBN...edjnXbL", "token_type": "Bearer" }
Verwenden Sie ein Aktualisierungstoken:
Um das erhaltene Aktualisierungstoken gegen ein neues Zugriffstoken auszutauschen, senden Sie eine POST-Anfrage an den Token-Endpunkt.
grant_type=refresh_token wie folgt.
jetzt lesen http://<wp_base_url>/wp-json/moserver/token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&
client_id=<client_id>&
client_secret=<client_secret>&
refresh_token=<refresh_token>
Hier finden Sie die Beschreibung für jeden Anforderungsparameter.
-
grant_type=refresh_token: Dies teilt dem Server mit, dass wir den Grant-Typ „Refresh Token“ verwenden.
-
client_id= Die öffentliche Kennung der Anwendung, die der Entwickler bei der Registrierung erhalten hat.
-
client_secret: Das vom OAuth-Anbieter bereitgestellte Client-Geheimnis.
- Refresh_token: Das zu verwendende Aktualisierungstoken.
Die Antwort enthält ein neues Zugriffstoken, dessen Typ, Gültigkeitsdauer (in Sekunden) und die gewährten Berechtigungen. Falls die Berechtigung des ursprünglichen Tokens OpenID umfasste, ist in der Antwort auch ein neues ID-Token enthalten.
Die Antwort enthält die folgenden Parameter:
{ „access_token“: „eyJ...MoQ“, „expires_in“: 86400, „scope“: , „id_token“: „eyJ...0NE“, „token_type“: „Bearer“ }
Widerrufen Sie ein Aktualisierungstoken
-
Da Refresh-Tokens nie ablaufen, ist es unerlässlich, sie widerrufen zu können, falls sie kompromittiert werden.
-
Um ein Aktualisierungstoken zu widerrufen, können Sie eine senden jetzt lesen Die Anfrage an den Token-Endpunkt erfolgt wie folgt.
jetzt lesen http://<wp_base_url>/wp-json/moserver/token
Content-Type: application/x-www-form-urlencoded
client_id=<client_id>&
client_secret=<client_secret>&
refresh_token=<refresh_token>
Kostenlose Testversion
Falls Sie nicht finden, wonach Sie suchen, kontaktieren Sie uns bitte unter info@miniorange.com oder rufen Sie uns unter +1 978 658 9387 an , um eine Antwort auf Ihre Frage zum Wordpress OAuth Server zu erhalten.
Sehen Sie sich die Videos an, um mehr zu erfahren
Demo ansehen