「WP REST API」を利用するために必要なプラグインをインストールすると、方法さえ知っていれば誰でもアクセスしてデータを取得することができます。
このアクセスを制限して「ログインしているユーザーのみ『WP REST API』にアクセスする方法」が紹介されていましたので、今後のためにメモ書きました。
WordPressの「REST API」へのアクセスは誰でもできないように「ログインしているユーザーのみ許可する方法」
「[Resolved] Restrict WP API access to a list of approved IP address ranges via .htaccess」の中で紹介されているgistで以下のコードが公開されています。
add_filter( 'rest_authentication_errors', function( $result ) { if ( ! empty( $result ) ) { return $result; } if ( ! is_user_logged_in() ) { return new WP_Error( 'restx_logged_out', 'Sorry, you must be logged in to make a request.', array( 'status' => 401 ) ); } return $result; });
やっていること
フック「rest_authentication_errors」を使って、ログインしているかどうかを「is_user_logged_in」で判別して、ログインしていないユーザーにはエラーメッセージを表示するっていうコードですね。
ホワイトリストを作って、IPアドレスでアクセス許可・拒否を指定しようかな〜と思って情報を探していたのですが、この方法も知っておくと今後のために役立ちそうです。
このページを共有する