Wordpress REST API验证远程请求

时间:2017-12-20 22:29:46

标签: json wordpress api authentication

我正在尝试将WP REST API用于项目并创建一些自定义端点。我跟着this documentation创建了端点。但是我的身份验证方法都是指OAuth或cookie方法。我想通过身份验证从远程地址向我的自定义端点发出请求。通过标头的基本编码密码可能有效,但我不知道如何在端点上实现它。这可能吗?

1 个答案:

答案 0 :(得分:0)

客户端点创建操作rest_api_init

身份验证用户名: - admin和密码: - admin

身份验证检查条件if($_SERVER['PHP_AUTH_USER'] !== 'admin' || $_SERVER['PHP_AUTH_PW'] !== 'admin')

端点网址:http://localhost/demo/wp-json/myplugin_api/v1/test_endpoint

<?php 

add_action( 'rest_api_init', 'myplugin_register_endpoint' );
function myplugin_register_endpoint() {

    register_rest_route( 'myplugin_api/v1', 'test_endpoint', array(
        'methods'  => 'GET,POST',
        'callback' => 'myplugin_test_endpoint',
    ) );
}    

function myplugin_test_endpoint()
{


    if($_SERVER['PHP_AUTH_USER'] !== 'admin' || $_SERVER['PHP_AUTH_PW'] !== 'admin')
    {

    header("WWW-Authenticate: Basic realm=\"thetutlage\"");
    header("HTTP\1.0 401 Unauthorized");


           $response = array(
            "result"=>false,
            "message"=>'Authenticate failed'
            );

        return $response;
    exit;

    }

     $response = array(
        "result"=true,
        "message"=>'Success'         
        );

     return $response;
}