Ich habe zwei AWS-Instanzen, eine für die WordPress-Website und eine für die React-Anwendung. Um sie miteinander zu verbinden, verwende ich “WP REST API – OAuth 1.0a Server” und “JWT Authentication for WP-API” für den Zugriff auf die WP REST API.
Ich bin in der Lage, Token von zu generieren /wp-json/jwt-auth/v1/token
aber wenn ich versuche, auf einen anderen Endpunkt zuzugreifen oder wenn ich versuche, das Token zu validieren /wp-json/jwt-auth/v1/token/validate
Ich erhalte folgenden Fehler:
{
"code": "jwt_auth_no_auth_header",
"message": "Authorization header not found.",
"data": {
"status": 403
}
}
Ich schaute nach oben und fand einige Dinge, denen ich etwas hinzufügen konnte .htaccess
. Ich habe alles hinzugefügt, was ich finden konnte, hatte aber keinen Erfolg.
RewriteEngine On
RewriteBase /
# Enable HTTP Auth
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
# WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# For SetEnvIf Authorization
#RewriteRule (.*) - [env=myenv:1]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
#SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
Ich habe den folgenden Code hinzugefügt, um zu sehen, ob ein Authorization Header in der Anfrage vorhanden ist, aber es gibt keinen
add_filter( 'rest_pre_dispatch', 'prefix_show_request_headers', 10, 3 );
function prefix_show_request_headers( $result, $server, $request ) {
$result = $request->get_headers();
return $result;
}
Hier (https://github.com/Tmeister/wp-api-jwt-auth/issues/6) Ich habe gelesen, dass WordPress vielleicht versucht, sich standardmäßig über die Cookie-Methode zu authentifizieren und einen Fehler auslöst und die JWT-Authentifizierung nicht erreicht, also habe ich diesen Code hinzugefügt, aber immer noch keinen Erfolg
add_filter( 'rest_authentication_errors', '__return_true' );
Endlich habe ich das Plugin “JSON Basic Authentication” hinzugefügt, das auch Benutzername: Passwort in den Headern sendet und es funktioniert. Ich bin mir also nicht sicher, ob es ein Problem mit Headern ist, die entfernt werden. Da es für Produktionsserver nicht empfohlen wird, brauche ich die JWT-Authentifizierung, um zu funktionieren.
Jede Hilfe ist willkommen.