web-dev-qa-db-ja.com

node-wpapi:認証の扱い方

公式(4.7+)REST AP​​Iについては、公式のnode-wpapi javascriptクライアントライブラリを参照しています。ここでのドキュメント: http://wp-api.org/node-wpapi/authentication/#cookie-authentication

Cookie Authentication の段落を読んでいますが、この状況にはありません。

私はシングルページアプリケーションを構築しようとしているので、REST AP​​Iを使用してユーザーを登録/ログイン/ログアウトする必要があります。 node-wpapiを使う必要はありません。他のライブラリを使ってAPIエンドポイントを呼び出すこともできます。

しかし、私の問題は、ユーザーをログインさせるために何を呼び出す必要があるのか​​、ユーザーがログインする必要がある他のAPI呼び出しを処理するために何を保存する必要があるのか​​理解できないことです。

1
realtebo

私はそれをチェックアウトしてくれてありがとう、node-wpapiライブラリの作者です。残念ながら、WordPress自体はcookie/nonceオプション(あなたが説明したように外部アプリケーションでは動作しない)以外の認証スキームを同梱していないため、現時点では外部認証スキームをサポートしていません。

JWTとOAuth 1.0aを使用してAPIリクエストを認証するためのプラグインがあり、これらのメソッドの処理はカスタムトランスポートメソッドと先週の1.1リリースのnode-apiで導入した新しい.setHeaders()関数を使用してnode-wpapiに対して実行できます。

しかし、あなたが説明していることは、これらのアプローチによって解決されるもののようには思えません。具体的には、REST AP​​I認証は、WordPressサイトに対して単一の要求を認証する方法です。つまり、「要求しているリソースを表示または編集する権利があります」と言います。 REST AP​​IはWordPressにログインするためのメカニズムを提供していません。これは既存のWordPressログインフォームを使用して処理されるべきです。

あなたのSPAがプラグインで動くように設計されているならば、私はログイン時にだけ見ることができるページを作るためにそれをセットアップすることを勧めます - そしてあなたのユーザーがアプリを開こうとするとき彼らはWordPressの既存のログインページに導かれるあなたのアプリに。ログインすると、単一ページのアプリケーションはAPIリクエストにcookie/nonce認証を使用できます。例として、 https://github.com/kadamwhite/wp-notebook にあるプロジェクトを参照してください。

これが役立つことを願っています、そしてREST AP​​Iを使用してくれてありがとう!

4
K. Adam