wp_verify_nonce()
wp_verify_nonce( string $nonce, string|int $action = -1…
wp_verify_nonce( string $nonce, string|int $action = -1 )
验证是否对时间限制使用了正确的安全一次性事件。
Verifies that a correct security nonce was used with time limit.
验证是否对时间限制使用了正确的安全一次性事件。
Verifies that a correct security nonce was used with time limit.
目录锚点:#说明#参数#源码#笔记
说明(Description)
nonce在24小时内有效(默认情况下)。
参数(Parameters)
| 参数 | 类型 | 说明 |
|---|---|---|
| $nonce | (string) | 用于验证的Nonce值,通常通过表单字段。 |
| $action | (string | int) | 应该给出正在发生的事情的上下文,并且在创建nonce时是相同的。 |
源码(Source)
/**
* Verify that correct nonce was used with time limit.
*
* The user is given an amount of time to use the token, so therefore, since the
* UID and $action remain the same, the independent variable is the time.
*
* @since 2.0.3
*
* @param string $nonce Nonce that was used in the form to verify
* @param string|int $action Should give context to what is taking place and be the same when nonce was created.
* @return false|int False if the nonce is invalid, 1 if the nonce is valid and generated between
* 0-12 hours ago, 2 if the nonce is valid and generated between 12-24 hours ago.
*/
function wp_verify_nonce( $nonce, $action = -1 ) {
$nonce = (string) $nonce;
$user = wp_get_current_user();
$uid = (int) $user->ID;
if ( ! $uid ) {
/**
* Filter 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 $action The nonce action.
*/
$uid = apply_filters( 'nonce_user_logged_out', $uid, $action );
}
if ( empty( $nonce ) ) {
return false;
}
$token = wp_get_session_token();
$i = wp_nonce_tick();
// 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;
}
// Invalid nonce
return false;
}
endif;
if ( !function_exists('wp_create_nonce') ) :| 更新版本 | 源码位置 | 使用 | 被使用 |
|---|---|---|---|
| 2.0.3 | wp-includes/pluggable.php | 10 | 2 |
笔记(Notes)
例子
类别:WordPress 函数手册、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。





还没有任何评论,赶紧来占个楼吧!