WP rest api jwt auth

Lesezeit: 2 Minuten

Benutzer-Avatar
Xavootia Bellion

Ich möchte die WP REST API-Authentifizierung mit diesem Plugin verwenden: https://github.com/Tmeister/wp-api-jwt-auth

Ich bekomme das Token mit dieser Anforderung auf POST : http://localhost/wp_rest/wp-json/jwt-auth/v1/token

Aber ich kann die Anforderung für die Postmethode nicht ausführen: localhost/wp_rest/wp-json/wp/v2/posts

Ich bekomme den Fehler 403:

{
    "code": "rest_forbidden"
    "message": "You don't have permission to do this."
    "data": {
        "status": 403
    }
}

In meinem Header habe ich folgendes:

Authorization: Bearer
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3RcL3dwX3Jlc3QiLCJpYXQiOjE0NTAzNDEwMTgsIm5iZiI6MTQ1MDM0MTAxOCwiZXhwIjoxNDUwOTQ1ODE4LCJkYXRhIjp7InVzZXIiOnsiaWQiOiIxIn19fQ.rGNPsU4EocClWLYWaSDs1hDJMODszg-eKfqnKSEsiw0

Ich versuche es mit localhost/wp_rest/wp-json/jwt-auth/v1/token/validate, aber ich bekomme diesen Fehler:

{
    "code": "jwt_auth_no_auth_header",
    "message": "Authorization header not found.",
    "data": {
        "status": 403
    }
}

Irgendeine Idee?

Benutzer-Avatar
Leo Gono

Anscheinend haben Sie keine Autorisierungsheader in Ihre Anfrage aufgenommen. Sie müssen hinzufügen 'Authorization': 'Bearer PLACE_TOKEN_HERE' in Ihren Anforderungsheadern.

Als Beispiel:

var req = {
    method: 'POST',
    url: window.location.href + 'wp-json/wp/v2/posts',
    headers: {
      'Authorization': 'Bearer ' + TOKEN_GOES_HERE
    }
    data: DATA TO PASS GOES HERE
}
$http(req);

  • Ich verwende es in der Flutter-App und mache das so ` Map requestHeaders = { ‘Authorization’: ‘$urlHeader’, }; var url = new Uri.http( Website.url, “/wp-json/jwt-auth/v1/token”, ); var client = http.Client(); var response = await client.post( url, headers: requestHeaders, body: { “username”: email, “social_login”: “true”, }, ); ` Aber es gibt mir einen Fehler bei der Revalidierung? wie man das löst

    – Ali Yar Khan

    28. Oktober 2021 um 17:22 Uhr


Benutzer-Avatar
Bert h

Wenn die Antwort von Leo Gono und Tunaki Ihr Problem immer noch nicht löst, vergewissern Sie sich, dass Sie die hinzugefügt haben folgenden Code zu deinem .htaccess Wenn Sie Apache verwenden:

RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

Stellen Sie sicher, dass Sie diese Zeilen vor der letzten Zeile mit einem “[L]” in Ihrer .htaccess-Datei, sonst wird es nicht verarbeitet.

Es ist möglich, dass der Authorization-Header vom Server der Framework-Einstellungen verworfen wird. (Ich musste den htaccess für Laravel ändern)

Ich bin beim Einrichten desselben Plugins auf ähnliche Probleme gestoßen, also habe ich ein Video erstellt, das den Prozess beschreibt, dem ich gefolgt bin, um schnell eine Testumgebung zu starten, das Plugin zu installieren, die notwendige Einrichtung durchzuführen, damit das Plugin funktioniert, und dann seine Funktionalität zu validieren.

Hier ist es: https://youtu.be/Mp7T7x1oxDk

Ich hatte genau das gleiche Problem. Meine Lösung war einfach.

Mit dem Tool (in meinem Fall Postbote (https://www.getpostman.com)), habe ich ausgewählt, den Authentifizierungsheader manuell hinzuzufügen (den Header zu erzwingen). Möglicherweise möchten Sie es manuell festlegen, wenn Sie Code im HTTP-Header-Abschnitt verwenden (nicht als Parameter, nur für den Fall 🙂 ).

Aktivieren Sie den Authentifizierungsheader

Mit freundlichen Grüßen Reinhard

1382110cookie-checkWP rest api jwt auth

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy