функция
since 2.0.3
wp_verify_nonce()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
wp_verify_nonce( string $nonce, string|int $action = -1 ): int|false
Описание
Одноразовый код действителен в течение от 12 до 24 часов (по умолчанию).
Оригинал (английский)
A nonce is valid for between 12 and 24 hours (by default).
Параметры
$nonce
string
обязательный
Значение одноразового кода, использованное для проверки, обычно через поле формы.
$action
string|int
необязательный
= -1
Должно задавать контекст происходящего и совпадать с тем, что использовалось при создании одноразового кода.
Возвращаемое значение
int|false
Исходный код
wp-includes/pluggable.php:2470
function wp_verify_nonce( $nonce, $action = -1 ) {
$nonce = (string) $nonce;
$user = wp_get_current_user();
$uid = (int) $user->ID;
if ( ! $uid ) {
/**
* Filters whether the user who generated the nonce is logged out.
*
* @since 3.5.0
*
* @param int $uid ID of the nonce-owning user.
* @param string|int $action The nonce action, or -1 if none was provided.
*/
$uid = apply_filters( 'nonce_user_logged_out', $uid, $action );
}
if ( empty( $nonce ) ) {
return false;
}
$token = wp_get_session_token();
$i = wp_nonce_tick( $action );
// Nonce generated 0-12 hours ago.
$expected = substr( wp_hash( $i . '|' . $action . '|' . $uid . '|' . $token, 'nonce' ), -12, 10 );
if ( hash_equals( $expected, $nonce ) ) {
return 1;
}
// Nonce generated 12-24 hours ago.
$expected = substr( wp_hash( ( $i - 1 ) . '|' . $action . '|' . $uid . '|' . $token, 'nonce' ), -12, 10 );
if ( hash_equals( $expected, $nonce ) ) {
return 2;
}
/**
* Fires when nonce verification fails.
*
* @since 4.4.0
*
* @param string $nonce The invalid nonce.
* @param string|int $action The nonce action.
* @param WP_User $user The current user object.
* @param string $token The user's session token.
*/
do_action( 'wp_verify_nonce_failed', $nonce, $action, $user, $token );
// Invalid nonce.
return false;
}
История изменений
| Версия | Описание |
|---|---|
| 2.0.3 | Introduced. |

