2017-05-15 97 views
0

最近我在我的网站上安装了WP REST API,它工作得很好。但问题在于,数据通过不需要验证的开放URL获得公众访问权限。例如,对wp-json/wp/v2/posts的获取请求列出了用户的所有帖子详细信息。验证WP REST API GET请求

有什么方法可以验证GET请求到WordPress REST API吗?我不希望这些数据可供匿名用户使用。即使一个基本的身份验证应该为我工作!

回答

0

您可以限制只有WP REST API为登录用户使用此插件 https://wordpress.org/plugins/disable-json-api/

,或者如果你不想使用插件,您可以在主题中添加此代码

if(! is_user_logged_in()) { 
add_filter('rest_authentication_errors', 'ultimatewoo_disable_rest_api'); 
function disable_rest_api($access) { 
    return new WP_Error('rest_disabled', __('The REST API on this site has been disabled.'), array('status' => rest_authorization_required_code())); 
}} 
+0

Hello Ryan AW, 感谢您的回答。我通过REST API将详细信息从WordPress提取到我的移动应用程序,我希望REST仅适用于我的移动应用程序(即使是获取请求)。有什么选择吗? –

+0

我的第二个答案即使得到请求也有效。在你的函数中添加该代码。让我知道,如果它适用于您或现在@Abdussamad –

0

你可以试试用这个改变那个代码。

add_filter('rest_authentication_errors', function($result) { 
if (! empty($result)) { 
    return $result; 
} 
if (! is_user_logged_in()) { 
    return new WP_Error('restx_logged_out', 'Sorry, you must be logged in to make a request.', array('status' => 401)); 
} 
return $result; 
});