WP REST API と OAuth 2 認証をjQueryだけで実現 ITかあさん

ITかあさん

WP REST API と OAuth 2 認証をjQueryだけで実現

設定内容詳細

WP OAuth Serverには設定内容がいくつもあり、分かりにくいので解説します。全部細かく解説するのは大変なので必要そうな箇所だけ解説しました。

General Settings

OAuth Server Enabled

これには問答無用でチェック。これがないとOAuth 2認証をそもそもできません。

Advanced Configuration

Authorization Code:

OAuthログイン認証の際、今回のテストアプリのようにログインフォームを独自で用意するのではなく、
WordPressのログイン画面を表示し、ログインをしたのちClients画面に設定したリダイレクトURLにAccessTokenとRefreshTokenをCookieに保存して戻ってくる動作が可能になります。
FacebookやTwitterのログイン連携の認証ではそのようなフローですね。

Client Credentials:(クライアントクレデンシャル)

「認可グラント」とも呼ばれます。
ログイン時にイメージするのはサイトのユーザーIDとパスワードですが、これにチェックが付いている場合、
client_idとclient_secretを送るだけでaccess_tokenが取得できるようになります。
未会員のユーザーに対し、access_tokenを発行しなければならない時なんかに使えます。
(あまり使う場面は多くないと思いますが、OAuth 2 のAPIでは提供しているところもあります)

User Credentials:(ユーザークレデンシャル)

WordPressのUserIDとパスワードを入力してAccessTokenを受け取ることを許可する場合にチェックを入れます。

Refresh Tokens:(リフレッシュトークン)

AccessTokenの有効期限を比較的短い時間に設定した場合、都度ユーザーにIDとパスワードを入力させるのは非常に手間です。
よって、RefreshTokenからAccessTokenを再発行することができるのです。

Implicit Flow

Implicit FlowとはOAuth 2.0プロトコルのひとつ。Facebookでの連携アプリをイメージすると、連携アプリを承認する画面があると思います。
Implicitは「暗黙の」という意味ですから、この画面が表示されません。エンドユーザー側と、OAuth 2の認証サーバー(WP OAuth Serverのインストールしてあるサーバー)直接やり取りをし、
サイト側にAccessTokenを渡す必要がないケースはこれのチェックが必要です。
例として、JavaScriptのみで動かすケースや、スマホアプリ開発時なんかが同様です。
今回私の発表スライドではjQueryのみで動かしましたので、同様にJSで開発される方はこれのチェックをしてください。

改めてこのプラグインの設定項目を見直すとOAuth 2 認証に必要な全ての機能を持っている点で5000円は非常にお得だと思います。
認証フローの仕組みだけをWP OAuth ServerとWordPress側に持たせてしまえば会員サイトの開発がすごい楽にできそう。。!
(これゼロベースで開発したら2〜3人月200万くらいはコストかかりそうだもん)

初夏のJavaScript祭 in サーキュレーションビル ForPro

ページ: 1 2