对于一个个人插件(不公开或商业),我构建了一个AJAX表单,其端点是一个自定义端点(RESTAPI)。
当访问包含我的表单的特定页面时,我会生成一个nonce。
然后,用户发送表单,我添加常规的标题(X-WP-Nonce
) 在端点函数中,我验证了加载页面时第一次创建的nonce。
我希望我的假期是短暂的,也就是说,12个小时太多了。
我发现我可以使用apply_filters(\'nonce_life\', timeHere)
但我不知道这条线应该在哪里:应该在这条线之前吗?
$nonce = wp_create_nonce(\'wp_rest\');
此外:这条线是否会改变我的WP中任何nonce的寿命,或者这一更改是否只影响我的nonce?我不想破坏其他插件。
谢谢
最合适的回答,由SO网友:Paul G. 整理而成
是的,使用该过滤器将影响添加该过滤器后创建的所有nonce的使用寿命,并且会影响该过滤器的使用寿命。因此,最好是添加它,创建nonce,然后删除它:
function my_nonce_lifetime() {
return 600; // 10 minutes
}
add_filter( \'nonce_life\', \'my_nonce_lifetime\' );
$nonce = wp_create_nonce(\'wp_rest\');
remove_filter( \'nonce_life\', \'my_nonce_lifetime\' );