Wordpress nonce 总是返回 false

问题描述

我的 wordpress API 有问题,用于验证的随机数总是返回 false。我尝试注销和注销,API 在身份验证关闭的情况下工作正常。我将包括下面的代码

add_action('rest_api_init','api_init');
add_action('admin_enqueue_scripts','enqueue_script');

function api_init() {
    register_rest_route("route/v1/","/directory/(?P<req>\d+)",array(
            "methods" => ["GET","POST"],"callback" => "api_delegate","permission_callback" => current_user_can("relevant_cap")
    ));

}

function enqueue_script() {
    wp_enqueue_script( 'script_name','/path/to/ajax/script.js',['jquery'],'1.0.4',false);

    wp_localize_script('script_name','ajax_var',array(
        "url" => esc_url_raw("https://relevant_url.com/"),"nonce" => wp_create_nonce('wp_rest')
    ));
}

对于客户端 Javascript

    $(".api").on('click',order66());

    function order66() {
        $.ajax({
            type: 'GET',url: '/wp-json/relevant/v1/',contentType: "application/json",data: {
                "_wpnonce": ajax_var.nonce
            },error: function (jqXhr,textStatus,errorMessage) {
                console.log(errorMessage);
            },// contentType: 'application/json',}).done(function (response) {
            console.log(response);
        });
    }

我也尝试使用“X-WP-Nonce”标头,但没有给出任何不同的结果。任何帮助或指示将不胜感激!

解决方法

解决了,我需要用匿名函数包装“权限回调”,之后它就像一个魅力!