Wordpress API для авторизации пользователя - PullRequest
0 голосов
/ 01 августа 2020

Есть ли в Wordpress какой-нибудь API для «авторизации» пользователя? Допустим, я хочу реализовать что-то вроде:

if (1 == 1) {
  user_authenticate('userXY');
}

Метод user_authenticate инициализирует сеанс и отправляет пользователю необходимые файлы cookie.

Спасибо!

1 Ответ

1 голос
/ 02 августа 2020

Существует ряд встроенных функций WordPress, которые могут оказаться полезными в том, что вы пытаетесь сделать. Думаю, наиболее полезной будет функция wp_set_auth_cookie (см .: https://developer.wordpress.org/reference/functions/wp_set_auth_cookie/).

Вы можете попробовать что-то вроде:

wp_clear_auth_cookie();
$user = get_user_by('login', $username);
$user_id = $user->ID;
wp_set_auth_cookie($user_id);
wp_set_current_user($user_id);

или что-то в этом роде.

Вот некоторые другие доступные вам функции пользователя / cookie / сеанса:

В wp-includes / pluggable. php файл

  • wp_validate_auth_cookie - Проверяет аутентификацию Cook ie.

  • wp_generate_auth_cookie - Создает аутентификацию Cook ie contents.

  • wp_parse_auth_cookie - разбирает Cook ie на его компоненты.

  • wp_set_auth_cookie - устанавливает файлы cookie аутентификации на основе идентификатора пользователя.

  • wp_clear_auth_cookie - Удаляет все файлы cookie, связанные с аутентификацией.

  • wp_get_current_user - Получить текущего пользователя объект.

  • wp_set_current_user - Изменяет текущего пользователя по ID или имени.

В wp-includes /user.php файл

  • wp_get_session_token - Re получить токен текущего сеанса из logged_in cook ie.
  • wp_get_all_sessions - Получить список сеансов для текущего пользователя.
  • wp_destroy_current_session - Удалить токен текущего сеанса из база данных.
  • wp_destroy_other_sessions - Удалить все токены сеанса, кроме текущего пользователя для базы данных.
  • wp_destroy_all_sessions - Удалить все токены сеанса для текущего пользователя из базы данных.

Существует также отличный плагин (длиной всего один файл), который выполняет подобные вещи, называемые Переключение пользователей (см.: https://wordpress.org/plugins/user-switching/). Вы также можете найти очень полезный код, исследуя этот файл.

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