Php WordPress WP REST API按域限制请求

Php WordPress WP REST API按域限制请求,php,ajax,wordpress,rest,wp-api,Php,Ajax,Wordpress,Rest,Wp Api,这似乎更为明显。我使用WordPress管理外部站点的内容。WordPress内容通过WP REST API显示,我使用ajax和JS将内容显示到这个远程站点。(例如)。一切都在SSL上,一切都很好。我如何简单地使这个ajax GET请求只允许来自某个特定的域——远程站点?WP API仅用于显示数据 我刚刚查看了php服务器变量,并解决了这个问题$_服务器['HTTP_ORIGIN'];就是我抓的那个。工作起来很有魅力 add_filter( 'rest_authentication_error

这似乎更为明显。我使用WordPress管理外部站点的内容。WordPress内容通过WP REST API显示,我使用ajax和JS将内容显示到这个远程站点。(例如)。一切都在SSL上,一切都很好。我如何简单地使这个ajax GET请求只允许来自某个特定的域——远程站点?WP API仅用于显示数据

我刚刚查看了php服务器变量,并解决了这个问题$_服务器['HTTP_ORIGIN'];就是我抓的那个。工作起来很有魅力

add_filter( 'rest_authentication_errors', 'gc_filter_incoming_connections' );

function gc_filter_incoming_connections( $errors ){

    $allowed_origins = array('https://www.example.com'); // url that you want to access your WP REST API
    $request_origin = $_SERVER['HTTP_ORIGIN'];

    if( ! in_array( $request_origin, $allowed_origins ) )
        return new WP_Error( 'forbidden_access', 'Access denied', array( 'status' => 403 ) );

    return $errors;

}

HTTP_ORIGIN
既不安全,也不是由每个浏览器发送的。我建议不要使用它。