wp_authenticate_application_password()


WordPressのwp_authenticate_application_password()関数は、アプリケーションパスワードを認証するために使用されます。この関数は、WordPress REST APIや他の外部アプリケーションとの安全な統合を可能にします。

構文

wp_authenticate_application_password( WP_User $user, string $password );

引数の説明:

  • $user (WP_User) — 認証を行うユーザーオブジェクト。
  • $password (string) — 検証するアプリケーションパスワード。

例 1: ユーザー認証の実行

次のコードは、指定されたユーザーIDとパスワードで認証を行います。

<?php 
$user = get_user_by( 'id', 1 );
$result = wp_authenticate_application_password( $user, 'your-app-password' );
?>

例 2: REST APIリクエストの認証

REST APIリクエストを認証する際に使用する例。

<?php
add_filter( 'rest_authentication_errors', function( $error ) {
    $user = wp_get_current_user();
    if ( ! wp_authenticate_application_password( $user, $_SERVER['PHP_AUTH_PW'] ) ) {
        return new WP_Error( 'invalid_password', 'Invalid application password', array( 'status' => 403 ) );
    }
    return $error;
} );
?>

例 3: 管理者のみアプリケーションパスワードを検証

管理者ユーザーのみにパスワード認証を適用するコード。

<?php
$user = get_user_by( 'id', 2 );
if ( user_can( $user, 'administrator' ) ) {
    $result = wp_authenticate_application_password( $user, 'admin-password' );
}
?>

例 4: 認証結果のログ出力

認証結果をログに記録する例。

<?php
$user = wp_get_current_user();
$result = wp_authenticate_application_password( $user, 'test-password' );
error_log( $result ? 'Authentication successful' : 'Authentication failed' );
?>

例 5: 外部アプリケーション用認証スクリプト

外部アプリケーションとの統合のための簡易認証スクリプト。

<?php
$user = get_user_by( 'email', 'user@example.com' );
if ( wp_authenticate_application_password( $user, 'external-app-pass' ) ) {
    echo 'Access granted';
} else {
    echo 'Access denied';
}
?>

注意事項

  • 不正なアクセスを防ぐため、HTTPSを使用してください。
  • この関数はWordPress 5.6以降で利用可能です。

関連機能: