WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

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

Позволяет дополнительно проверить данные авторизации (логин/пароль) пользователя, до того как он будет авторизован (данные пройдут аутентификацию).

Фильтр срабатывает всякий раз, когда юзер входит на сайт (авторизуется на сайте).

Этот фильтр является базовой проверкой логина/пароля в WordPress.

Используйте хук wp_authenticate_user, когда нужно сделать дополнительные проверки авторизации после базовой проверки WordPress, но до того, как пользователь будет авторизован, .

Использование

add_filter( 'authenticate', 'filter_function_name_4601', 10, 3 );
function filter_function_name_4601( $user, $username, $password ){
	// filter...

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

Объект WP_User, если пользователь прошел проверку. Объект WP_Error или null.

Функция обработчик может вернуть:

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

Примеры

#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    );

Где вызывается хук

wp_authenticate()
authenticate
wp-includes/pluggable.php 532
$user = apply_filters( 'authenticate', null, $username, $password );

Где используется хук (в ядре WP)

wp-includes/default-filters.php 411
add_filter( 'authenticate', 'wp_authenticate_username_password', 20, 3 );
wp-includes/default-filters.php 412
add_filter( 'authenticate', 'wp_authenticate_email_password', 20, 3 );
wp-includes/default-filters.php 413
add_filter( 'authenticate', 'wp_authenticate_spam_check', 99 );
wp-includes/user.php 88
add_filter('authenticate', 'wp_authenticate_cookie', 30, 3);
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться