WordPress Webサイト用とReactアプリケーション用の2つのAWSインスタンスがあります。それらを一緒に接続するために私はWP REST APIにアクセスするために "WP REST API - OAuth 1.0a Server"と "WP-APIのJWT認証"を使用しています。WordPress REST API JWTトークンの検証時にjwt_auth_no_auth_headerエラーが発生しました
/wp-json/jwt-auth/v1/token/validate
でトークンを検証しようとしている場合、私は次のようなエラーになっています私は/wp-json/jwt-auth/v1/token
でトークンを生成することができていますが、私は、他のエンドポイントにアクセスしようとしているとき、または:私が見上げると、いくつか見つかっ
{
"code": "jwt_auth_no_auth_header",
"message": "Authorization header not found.",
"data": {
"status": 403
}
}
を追加するものは.htaccess
になります。私は見つけることができるすべてを加えたが、成功しなかった。
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
私は、任意の認証ヘッダーが要求に存在しているかどうかを確認するために、次のコードを追加しましたが、私はWordPressが多分クッキーを経由して認証しようとしていることを読んでどの
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;
}
ここ
(https://github.com/Tmeister/wp-api-jwt-auth/issues/6)はありませんデフォルトでは、方法およびエラーを投げ、私は最後に、コードのこの部分が、まだありません成功
add_filter('rest_authentication_errors', '__return_true');
を追加しましたので、私は追加JWT認証に達していません"JSON基本認証"プラグインで、ヘッダにusername:passwordも送信します。だから私はヘッダーが剥奪されている問題かどうかはわかりません。プロダクションサーバーにはお勧めできませんので、JWT認証が必要です。
何か助けていただければ幸いです。
これは私をたくさん助けました。未定義のインデックスエラーを回避するには、次のようにします: '$ auth = isset($ allHeaders ['AUTHORIZATION'])? $ allHeaders ['AUTHORIZATION']:false; ' –
ありがとう@steveKim!更新された答え。 –