Войти в WP пользователя через REST API - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть два сайта:

  • site.com (сайт WordPress)
  • subdomain.site.com (другой сайт)

Я хочу для входа пользователя WP в site.com (WP) с subdomain.site.com с помощью WP REST API.

Итак, я выполняю следующие функции: php на site.com (WP):

add_action('rest_api_init', function () {
    register_rest_route('xxx/v1', '/login', [
        'methods'   => WP_REST_Server::READABLE,
        'callback'  => function (WP_REST_Request $request) {
            // I try this:
            wp_set_current_user(1);
            wp_set_auth_cookie(1);

            // and this:
            $user = wp_signon([
                'user_login' => 'xxx',
                'user_password' => 'xxx',
                'remember' => true,
            ], false);
        }
    ]);
});

А на subdomain.site.com я использую CURL для выполнения запроса.

К сожалению, он не работает. Код выполнен хорошо, но логин пользователя не работает, файлы cookie не определены.

Вы можете помочь?

Спасибо!

1 Ответ

0 голосов
/ 16 апреля 2020

Вы пробовали следующее:

add_action( 'rest_api_init', 'register_api_hooks' );

function register_api_hooks() {
  register_rest_route(
   'xxx/v1', '/login',
    array(
      'methods'  => 'POST',
      'callback' => 'login',
    )
  );
 }

function login($request){
    $creds = array();
    $creds['user_login'] = $request["username"];
    $creds['user_password'] =  $request["password"];
    $creds['remember'] = true;
    $user = wp_signon( $creds, false );

    if ( is_wp_error($user) )
      echo $user->get_error_message();

     return $user;
}

add_action( 'after_setup_theme', 'custom_login' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...