У меня есть приложение реагирования, и в настоящее время аутентификация пользователя выполняется с помощью Wordpress. Поэтому я использую JWT_AUTH ! Плагин для управления функциями входа пользователя.
Итак, теперь требование изменилось, и пользователи должны иметь возможность войти на сайты React и Wordpress за одну попытку входа. Это означает, что если пользователь входит в приложение React, он также должен автоматически войти в свое приложение Wordpress. Также, если пользователь входит в приложение Wordpress, он должен автоматически войти в свое приложение реакции.
Я создал пользовательскую конечную точку API REST для выполнения этого требования. Но это не работает, как ожидалось. Эта конечная точка работает, когда я использую эту ссылку API с браузером. Это потому, что у него нет возможности хранить куки с помощью вызова REST API.
Я также пытался сгенерировать куки авторизации с помощью оставшегося вызова API, но он выдал ошибку «500».
add_action( 'rest_api_init', function () {
register_rest_route( 'user/v1', '/api-login-check', array(
'methods' => WP_REST_Server::READABLE,
'callback' => 'rest_api_login_user',
'schema' => array(
'type' => 'array'
)
));
});
function rest_api_login_user($object, $request = null) {
$response = array();
$parameters = $request->get_json_params();
$creds = array();
$creds['user_login'] = $object['username'];
$creds['user_password'] = $object['password'];
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ($user) {
$response['code'] = 200;
$response['message'] = __("User logged in", "wp-rest-user");
return new WP_REST_Response($response, 123);
}else{
$response['code'] = 403;
$response['message'] = __("User not logged in", "wp-rest-user");
}
}
Есть ли простой способ сделать это? Также, если есть способ перенаправить пользователя на другой URL-адрес от вызова API остальных, это тоже хорошо.