authenticate хук-фільтрWP 2.8.0

Дозволяє додатково перевірити дані авторизації (логін/пароль) користувача до того, як він буде авторизований (дані пройдуть автентифікацію).

Фільтр спрацьовує щоразу, коли користувач входить на сайт (авторизується на сайті).

Цей фільтр є базовою перевіркою логіну/паролю в WordPress.

Використовуйте wp_authenticate_user хук , коли потрібно зробити додаткові перевірки авторизації після базової перевірки WordPress, але до того, як користувач буде авторизований, .

Використання

add_filter( 'authenticate', 'wp_kama_authenticate_filter', 10, 3);

/**
 * Function for `authenticate` filter-hook.
 *
 * @param null|WP_User|WP_Error $user WP_User if the user is authenticated. WP_Error або null іншіwise.
 * @param string $username Username або email address.
 * @param string $password User password
 *
 * @return null|WP_User|WP_Error
 */
function wp_kama_authenticate_filter( $user, $username, $password ){

	// Filter...
	return $user;
}
$user
(null/WP_User/WP_Error)

Об’єкт WP_User , якщо користувач перевірив. Об’єкт WP_Error або null .

Функція обробник може повернути:

  • WP_User – означає, що перевірка пройдена і можна перейти до наступних перевірок.
  • null – означає, що перевірки аутентифікації ще не було.
  • WP_Error – означає, що перевірка була, але дані не пройшли цю перевірку.
$username
(рядок)
Логін чи email. Email працює з версії WP 4.5.0, до цього можна було вказати тільки логін.
$password
(рядок)
Пароль у НЕ зашифрованому вигляді.

Приклади

0

#1 Базова перевірка авторизації (логіна та пароля) у WordPress

Для базової перевірки на хук authenticate причеплено 3 функції:

З файлу: /wp-includes/default-filters.php .

// Default authentication filters
add_filter( 'authenticate', 'wp_authenticate_username_password', 20, 3);
add_filter( 'authenticate', 'wp_authenticate_email_password', 20, 3);
add_filter( 'authenticate', 'wp_authenticate_spam_check', 99);
0

#2 Авторизація за куками

Після того як ви ввели логін та пароль та були авторизовані. У куки записується ваш пароль у вигляді тимчасового хеша (щось на кшталт сесії).

Авторизація за таким хешем у куках відбувається також на цьому хуку за допомогою функції wp_authenticate_cookie() .

add_filter( 'authenticate', 'wp_authenticate_cookie', 30, 3);
0

#3 Авторизація через пароль програми

Після додавання wp_authenticate_application_password() .

add_filter( 'authenticate', 'wp_authenticate_application_password', 20, 3);

список змін

З версії 2.8.0Введено.
З версії 4.5.0$username now accepts an email address.

Де викликається хук

authenticate

Де використовується хук у WordPress

wp-includes/default-filters.php 476

add_filter( 'authenticate', 'wp_authenticate_username_password', 20, 3);

wp-includes/default-filters.php 477

add_filter( 'authenticate', 'wp_authenticate_email_password', 20, 3);

wp-includes/default-filters.php 478

add_filter( 'authenticate', 'wp_authenticate_application_password', 20, 3);

wp-includes/default-filters.php 479

add_filter( 'authenticate', 'wp_authenticate_spam_check', 99);

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *