2017-12-20 16 views
-2

プロジェクト用にWP REST APIを使用してカスタムエンドポイントを作成しようとしています。私はthis documentationに続き、エンドポイントを作成しました。しかし、私はすべての認証方法はOAuthまたはクッキーメソッドを参照しています。私は、認証でリモートアドレスから私のカスタムエンドポイントに要求したいと思います。ヘッダーを通じた基本的なコード化されたパスフレーズはうまくいくかもしれませんが、私はエンドポイントでそれをどのように実装できるのか分かりません。これは可能ですか?リモートリクエストを認証するWordpress REST API

+1

あなたは含まれていただけます既に試したコードのスニペットとyエラーまたは予期せぬ出力が表示される –

+0

トピックに関する質問をするには、[どのトピックについて聞くことができますか](https://stackoverflow.com/help/on-topic)と[回避するトピック(https ://stackoverflow.com/help/dont-ask)と[良い質問をする方法](https://stackoverflow.com/help/how-to-ask)と[完璧な質問](https:// (https://stackoverflow.com/help/mcve)と[ツアーを取る](https:// stackoverflow)を参照してください。 .com/tour) –

答えて

0

、カスタマーエンドポイントアクションを作成rest_api_init

認証ユーザ名: - adminとパスワード: - admin

認証チェック条件if($_SERVER['PHP_AUTH_USER'] !== 'admin' || $_SERVER['PHP_AUTH_PW'] !== 'admin')

かのエンドポイントURL: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; 
}