Dies ist eigentlich keine Frage, sondern eine Anleitung, wie authentifizierte Anforderungen mit JWT an die Wordpress-API gesendet werden. Ich schreibe dies als Erinnerung an mich selbst und für diejenigen, die Hilfe zum selben Thema benötigen.
rest-api
authentication
grazianodev
quelle
quelle
Antworten:
Warum JWT-Authentifizierung?
Ich erstelle eine Site, die Wordpress als Back-End und eine React + Redux-App als Front-End verwendet. Daher rufe ich den gesamten Inhalt im Front-End ab, indem ich Anforderungen an die Wordpress-API stelle. Einige Anfragen (hauptsächlich POST-Anfragen) müssen authentifiziert werden, als ich auf JWT gestoßen bin.
Was wir brauchen
Um die JWT-Authentifizierung mit Wordpress zu verwenden, müssen Sie zuerst das JWT-Authentifizierungs- Plugin für WP REST-API installieren . Wie in den Anweisungen des Plugins erklärt, müssen wir auch einige wichtige Wordpress-Dateien ändern. Im Speziellen:
In der im Stammordner der Wordpress-Installation enthaltenen .htaccess-Datei müssen die folgenden Zeilen hinzugefügt werden:
In der Datei wp-config.php, die auch im Stammverzeichnis der Wordpress-Installation enthalten ist, müssen folgende Zeilen hinzugefügt werden:
Testen, ob JWT verfügbar ist
Um zu überprüfen, ob wir JWT jetzt verwenden können, starten Sie Postman und stellen Sie eine Anforderung an den Standardindex der Wordpress-API:
Einige neue Endpunkte mögen
/jwt-auth/v1
und/jwt-auth/v1/token
sollten der API hinzugefügt werden. Wenn Sie sie in der Antwort auf die obige Anfrage finden, bedeutet dies, dass JWT jetzt verfügbar ist.JWT-Token abrufen
Bleiben wir für den Moment bei Postman und fordern ein Token für die Wordpress-API an:
Die Antwort enthält das JWT-Token, einen verschlüsselten Schlüssel, der ungefähr so aussieht:
Eine authentifizierte Anfrage stellen
Versuchen wir, den Titel eines Posts mit der ID 300 als Beispiel für eine authentifizierte Anforderung mit JWT zu ändern.
Wählen Sie im Postman die Methode POST und geben Sie den folgenden Endpunkt ein:
Wählen Sie auf der Registerkarte Authorization die Option No Auth, und fügen Sie auf der Registerkarte Headers Folgendes hinzu:
Wählen Sie schließlich auf der Registerkarte Body die Optionen raw und JSON (application / json) aus, und geben Sie im Editor direkt unter den Optionen Folgendes ein:
Jetzt können Sie SENDEN drücken. Schauen Sie auf dem Antwort-Tab mit allen Daten zu dem von uns angeforderten Beitrag nach: Der Wert für den Titelschlüssel sollte jetzt sein
YES! Authenticated requests with JWT work
quelle
register_rest_route( 'jwt-auth/v1', 'your_custom_endpoint ...
. Alles unter / jwt-auth / muss autorisiert werdenIn Ergänzung zu @ grazianodevs Antwort erhalten Sie Ihr Autorisierungstoken mithilfe von cURL wie folgt:
Danach senden Sie Ihre Anfragen mit der Überschrift: "Authorization: Bearer $ token"
Wobei $ token das von der obigen Funktion getToken () zurückgegebene Token ist.
Ich persönlich benutze das Plugin " REST-API deaktivieren und JWT / OAuth-Authentifizierung erfordern ", um den API-Zugriff nur mit dem obigen Token einzuschränken.
quelle