自定义端点Permission_callback 401找不到有效用户

时间:2019-01-17 16:06:38

标签: authentication wordpress-rest-api

我是WP API的新手。

我收到消息

{   “ code”:“ rest_forbidden”,   “ message”:“对不起,你不能这样做。”,   “数据”:{     “状态”:401   } }

当我调用没有Permission_Callback的自定义终结点时,我会按预期获取数据。

当我添加current_user_can('edit_posts')时,我得到了上面的401。

然后我注释掉Permission_Callback,并在回调函数中添加了wp_get_current_user(),结果为0null。

function get_chassis_list() {
$current_user = wp_get_current_user();
echo $current_user->ID;

$args = array(
    'post_parent' => 131,
    'post_type' => 'any',
    'numberposts' => -1,
    'post_status' => 'any'
);

$chassis_list = get_children($args);

foreach( $chassis_list as $chassis_list_item){
    $id = $chassis_list_item -> ID;
    $post_title = $chassis_list_item -> post_title;
    $items[] = array(
        'Id' => $id,
        'Title' => $post_title
    );
}

return $items;
};

add_action( 'rest_api_init', function () {
register_rest_route( 'api/v1' , '/chassis_list', array(
   'methods' => 'GET',
   'callback' => 'get_chassis_list',
   'args' => array(
       'id' => array(
           'validate_callback' => 'is_numeric'
       ),
    ),
     //  'permission_callback' => function () {
     //      return current_user_can('edit_posts');
    //   },
   ));
});

我在plugins文件夹中已激活的插件中具有端点。

这些端点将用于React Native应用程序使用,我想让该应用程序作为用户使用这些端点。我还没有开始RN部分。我先设置端点,然后使用Chrome浏览器查看结果。

这是否被认为是外部API调用,甚至在插件中也很难?

如果是这样,那么我该如何传递用户,以便可以使用current_user_can()来限制API端点公开?

我看到cookie身份验证可以通过登录到仪表板来工作,但这可以通过我的插件方法来完成吗?

我真的不想添加其他插件来处理身份验证,只要我自己就能完成。

任何方向都值得赞赏!

0 个答案:

没有答案