2017-05-15 8 views
0

には、WordpressのAPI Restと角度でカスタムログインを作成する方法があります。 OAuth 1.0aのServerプラグインを、私は二つの方法(基本認証とOAuthの)を使用して、それをAPI RestでのカスタムWordPressのログイン

それともそのかのうを行う方法を見つけ出すcan't -

現在、私はWPのREST APIを使用していますか?

私はこの過去数週間と格闘されている任意のヘルプ

答えて

1

をいただければ幸いです。それはあなたのユースケースに依存します。

まず、基本認証を使用しないでください。それは安全ではなく、開発のためだけです。セットアップに値するものではありません。

OAuthは既にどこかのユーザーのリポジトリを所有していて、そのユーザーが自分の情報にアクセスしたり、アカウントにアカウントを作成したりすることをアプリに許可したい場合に使用します。 ! "ボタンか何か、それはOAuthです。間違っているかもしれないが、私はそれがあなたが望むものだとは思わない。

JWTまたはJSON Web Token Authは、私が着陸したこと、そしてあなたが求めていると思っていたものです。これは、ユーザーが新しいユーザーアカウントを作成し、アプリ内で完全にログインできるようにするために、私にとって最適です。

まず、WP-APIプラグイン用のJWTの認証をインストールします。

https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/

これは、REST APIでJWT認証用の新しいエンドポイントを公開します。エンドポイントにユーザーの資格情報をpingして、トークン応答を取得します。何らかの形でそのトークンを保存し(私は現在localStorageを使用しています)、アクセス許可が必要なすべての要求の要求ヘッダーに追加します。事実、あなたはログインしています!詳細については、プラグインのドキュメントを参照してください。リクエストを添付するためのコード例は、Ang2Sではなく、Ang2/4ですが、概念は同じです。次に、コメントを投稿するサービスの例を示します。

postComment(comment): any { 

let headers = new Headers({ 'Authorization': 'Bearer ' + JSON.parse(localStorage.getItem('currentUser')).token}); 
let options = new RequestOptions({ headers: headers }); 

return this.http 
    .post(this._wpBase + "comments", comment, options) 
    .subscribe((res: Response) => { 
    res.json(); 
    }); 
} 

おそらくこれを行うには、より良い、グローバルな方法がありますが、私はまだそれをすべて考え出しています。これが参考になることを願っています!

+0

ありがとう、それは私が使っているものです。回答が受け入れられました – Mauro

0
  1. テーマの次のコードfunction.phpに次のコードを貼り付けます。
  2. WP-REST-APIプラグインは、ワードプレスのサイトにインストールする必要があることを確認してください

    add_action('rest_api_init', 'register_api_hooks'); 
    
    function register_api_hooks() { 
    
    register_rest_route(
    
        'custom-plugin', '/login/', 
         array(
        'methods' => 'GET', 
        'callback' => 'login', 
          ) 
        ); 
    } 
    function login($request){ 
          $creds = array(); 
          $creds['user_login'] = $request["username"]; 
          $creds['user_password'] = $request["password"]; 
          $creds['remember'] = true; 
          $user = wp_signon($creds, false); 
    
         if (is_wp_error($user)) 
    
          echo $user->get_error_message(); 
          return $user; 
           } 
    
    add_action('after_setup_theme', 'custom_login'); 
    
    次に、あなたのAPIが

    http://www.url.com/wp-json/custom-plugin/login?username=xyz&password=xyz

    として作成されます

あなたに200を取得しますポストマンでそれを試してみてください応答とuser info

+0

動作していません、リクエストのユーザ名にエラーが発生しています... – David