②ログイン用のAPIエンドポイントをWordPressに設定

Kotlin

functions.phpに下記コードを記述

function login_user(WP_REST_Request $request) {
    $username = sanitize_text_field($request->get_param('username'));
    $password = sanitize_text_field($request->get_param('password'));

    if (!$username || !$password) {
        return new WP_Error('missing_data', 'ユーザー名とパスワードは必須です', array('status' => 400));
    }

    $user = wp_authenticate($username, $password);

    if (is_wp_error($user)) {
        return new WP_Error('invalid_credentials', 'ログインに失敗しました', array('status' => 401));
    }

    return rest_ensure_response(array('status' => 'success', 'user_id' => $user->ID));
}

add_action('rest_api_init', function () {
    register_rest_route('custom-api/v1', '/login/', array(
        'methods' => 'POST',
        'callback' => 'login_user',
        'permission_callback' => '__return_true'
    ));
});
BACK