这看起来会更明显。我使用 WordPress 来管理外部网站的内容。 WordPress 内容通过 WP REST API 显示,我使用 ajax 和 JS 向这个远程站点显示内容。 (例如 https://example.com//wp-json/wp/v2/pages/23 )。一切都在 SSL 上,一切都很好。我怎样才能简单地使这个 ajax GET 请求只允许来自某个域 - 远程站点? WP API 仅用于显示数据。
最佳答案
我刚刚查看了 php 服务器变量并弄清楚了。 $_SERVER['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;
}
关于php - WordPress WP REST API 按域限制请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43923877/