반응형
방법 1: 로그인하지 않은 사용자의 API를 완전히 비활성화합니다
/*로그인하지 않은 사용자 사용 안 함*/
add_filter( 'rest_api_init', 'rest_only_for_authorized_users', 99 );
function rest_only_for_authorized_users($wp_rest_server){
if ( !is_user_logged_in() ) {
wp_die('불법 조작!!');
}
}
방식 2: 일부 끝점을 필터링할 수 없음
add_filter( 'rest_endpoints', function( $endpoints ){
if ( isset( $endpoints['/wp/v2/users'] ) ) {
unset( $endpoints['/wp/v2/users'] );
}
if ( isset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] ) ) {
unset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
}
return $endpoints;
});
또는
foreach ($endpoints as $key=>$value){
if(preg_match("/^(\/wp\/v2|\/oembed\/1.0|\/ft\/v1)/",$key)){
unset( $endpoints[$key] );
}
}
//
if ( isset( $endpoints['/'] ) ) {
unset( $endpoints['/'] );
}
방식 3: API에서 모든 끝점 제거
add_action(' plugins_loaded ',function(){
remove_filter(' rest_api_init ',' create_initial_rest_routes ');
});
조합사용: 일부 API, 로그인 접속 가능
add_filter( 'rest_endpoints', function( $endpoints ){
foreach ($endpoints as $key=>$value){
if(preg_match("/^(\/wp\/v2|\/oembed\/1.0|\/ft\/v1)/",$key) && defined(AUTH_KEY)){
unset( $endpoints[$key] );
}
}
if ( isset( $endpoints['/'] ) ) {
unset( $endpoints['/'] );
}
return $endpoints;
});
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
php 두 자릿수 그룹을 키 값으로 정렬합니다 (0) | 2022.08.02 |
---|---|
Laravel 사용자 정의 Json 데이터 형식 참조로 쉽게 돌아가기 (0) | 2022.08.02 |
애플릿 또는 js, 변수(Undefined String Array Object)가 비어 있는지 판단 (0) | 2022.08.02 |
팡웨이오 2o 시스템 도메인 이름 바인딩 해제 세부 사항 (0) | 2022.08.01 |
10개의 실용적인 PHP 정규 표현식 (0) | 2022.08.01 |