2017-05-15 4 views
0

최근 내 사이트에 WP REST API가 설치되어 있으며 제대로 작동합니다. 그러나 문제는 인증을 요구하지 않는 공개 URL을 통해 데이터가 대중에게 접근 할 수 있다는 것입니다. 예를 들어 wp-json/wp/v2/posts에 대한 get 요청은 모든 게시물 세부 사항을 사용자에게 나열합니다.WP REST API 인증 요청 받기

GET Requests to WordPress 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

이 플러그인으로 로그인 한 사용자 만 WP REST API를 제한 할 수 있습니다 이 코드로 코드를 변경하십시오.

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; 
}); 
+0

안녕하세요 라이언 AW, 답변에 대한 감사합니다. WordPress에서 REST API를 통해 내 모바일 애플리케이션으로 세부 정보를 가져 오는 중이므로 REST를 내 모바일 애플리케이션에서만 액세스 할 수있게하려고합니다. 어떤 옵션이 있습니까? –

+0

제 2 회 답은 요청을 받더라도 효과적입니다. 함수 내에 해당 코드를 추가하십시오. 당신이나 지금은 @Abdussamad를 위해 일했는지 알려주세요. –

0

당신은 시도 할 수