使用基本身份验证向公众隐藏WordPress REST终结点

时间:2018-04-29 作者:Yamona

我有一个注册新端点的函数。默认情况下,终点是公共的。我正在使用应用程序密码插件创建一个基本的身份验证帐户,比如Basic 64basePassword

add_action( \'rest_api_init\', function () {

    register_rest_route( \'wp/v2\', \'somthing\', array(
        \'methods\' => \'GET\',
        \'callback\' => \'callback_function\',
    ));

});
有个名为的参数permission_callback, 但这需要饼干。我可以使用permission_callback 或者任何其他方法来隐藏端点,以便只有具有基本身份验证的请求才能访问端点?或者让我问一下:在标头中使用基本身份验证,比如“授权:基本some64basePass”

如何检查标头中的授权值是否有效?

1 个回复
SO网友:Yamona

这是我的解决方案。在回调函数内部,我验证Authorization 从标题如下:

function callback_function($data) {
    //Get HTTP request headers 
    $auth = apache_request_headers();
    //Get only Authorization header
    $valid = $auth[\'Authorization\'];

    // Validate
    if ($valid == \'Basic Base64UsernamePassword\') {
        //Do what the function should do
    } else {
        $response = \'Please use a valid authentication\';
    }

    return json_encode($response);
}

结束