wp_check_password()
Сравнивает строки паролей: читабельный пароль (обычный) с кодированным паролем (в виде хэша). Нужна для проверки пароля пользователя.
Параметр $hash закодированный пароль (хранится в БД), а параметр $password - обычный текстовый пароль. Функция кодирует переданный текстовый пароль и сравнивает получившийся хэш с указанным, если они совпадают (кодированы по одному принципу) функция вернет true.
Поддерживает обратную совместимость со старой версией протокола аутентификации, который еще не использует библиотеку PHPass.
Pluggable функция — эту функцию можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.
Замена функции (переопределение) — в must-use или обычном плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.
Хуки из функции
Возвращает
true|false. true/false: false, если пароль не совпадает с хэшем.
Использование
wp_check_password( $password, $hash, $user_id );
- $password(строка) (обязательный)
- Пароль в виде обычного текста.
- $hash(строка) (обязательный)
- Закодированный пароль с которым нужно сравнить первый параметр.
- $user_id(число)
- ID пользователя, которому нужно пересохранить хэш пароля в соответствии с новым (последним) алгоритмом хэширования. Пересохранение произойдет только если указанный пароль пройдет проверку.
По умолчанию: ''
Примеры
#1 Проверим пароль пользователя
Допустим у нас есть пароль в виде обычного текста и нам нужно узнать является ли этот пароль паролем пользователя с ID 3:
$user = get_userdata( 3 );
if( $user ){
$is_pass_ok = wp_check_password( 'my-super-pass', $user->data->user_pass );
echo $is_pass_ok ? 'Пароль ОК' : 'Неправильный пароль';
}
Заметки
- Global. PasswordHash. $wp_hasher phpass object. Used as a fallback for verifying passwords that were hashed with phpass.
Список изменений
| С версии 2.5.0 | Введена. |
| С версии 6.8.0 | Passwords in WordPress are now hashed with bcrypt by default. A password that wasn't hashed with bcrypt will be checked with phpass. |