在使用 WP Rest API 时,我有一个关于权限回调的问题。我已经使用 register_rest_route 注册了几个端点,只是想保护它们,以便在您未登录时无法访问内容。
add_action('rest_api_init', 'register_custom_endpoints');
function register_custom_endpoints(){
register_rest_route($base, $endpoint, [
'methods' => 'POST',
'callback' => function($request){
// Return JSON data
},
'permission_callback' => function($request){
// This always returns false
return is_user_logged_in();
},
]);
}
Run Code Online (Sandbox Code Playgroud)
我认为我的逻辑是正确的,但is_user_logged_in()总是返回 false,这意味着即使我实际登录我也永远不会得到数据。我得到的只是 404 响应:
{code: "rest_user_invalid_id", message: "Invalid user ID.", data: {status: 404}}
Run Code Online (Sandbox Code Playgroud)
我一直在网上搜索答案,我发现我需要随请求发送一个随机数。我试过将它作为正文数据和标题发送。如果我在正文中发送它,我无法验证它,因为它总是返回 false。如果我将它作为标头发送,我会得到与上述相同的 404 响应。
我在这里错过了什么,我做错了什么?