使用REST API注册REST字段身份验证

时间:2018-02-11 作者:Ynhockey

我正在尝试将一些用户元信息添加到现有的wp/v2/users REST端点。但是,似乎需要额外的身份验证,即我得到以下信息(在注释中输出):

    error_log( is_user_logged_in() ); // true
    register_rest_field( \'user\',
        \'is_logged_in\',
        array(
            \'get_callback\' => function () {
                return is_user_logged_in(); // false
            },
        )
    );
(因此,在我注册的新字段中似乎不可能获得实际的用户元)。

首先:如果我在这一点上错了,请纠正我,因为这会让事情变得更容易。

但是,假设需要额外的身份验证:我尝试将\\u wpnance设置为登录时获得的nonce,并返回403。我只是希望能够以JSON格式发送任何登录了自己用户数据的用户。正确的方法是什么?

1 个回复
SO网友:Mark Kaplun

基于请求本身未传递的“外部数据”返回不同的结构是一种糟糕的API设计。

为登录用户构造不同的API并使用不同的端点,或者在用户没有访问数据的权限时返回“filler”。

(对官方rest API进行修改总是一个坏主意,因为您可能会与它的其他用户产生不兼容,所以至少要小心使用前缀等)

结束

相关推荐

安装和卸载WP-REST-API插件后API返回空白响应

WordPress/WooCommerce API在我的网站上被破坏:http://example.com/wp-json/wp/v2/posts 和http://example.com/wp-json/wc/v2/products 两者都返回空白响应。运行Python请求response = requests.get(\'http://<mysite>.com/wp-json/wp/v2/posts\', auth=HTTPBasicAuth(*auth)) 给出的响应(在调试器中