OAuth
用語
認可サーバ
アクセストークンを発行する。
ユーザは、認可サーバのアカウントを持っている必要がある。
リソースサーバ
許可した権限で自由にアクセスできる対象。
Twitter等であれば、認可サーバと同一。
クライアント
アプリケーション。
認可サーバにアプリケーションを登録し、ID(client_idとclient_secret。クレデンシャルとも呼ぶ)を取得する必要がある。
スコープ
Client Secret
認可サーバとの間でのクライアント認証に利用する。
フロー
4種類のフローを提供している。
Authorization Code
通常のフロー。
client_secretを使って、認可サーバとの間でクライアント認証ができる。
stateパラメータの指定は任意であるが、CSRF対策のために、常に指定する。
Refresh Tokenを利用すると、Access Tokenを適宜再発行できる。
Implicit Grant
client_secretなしでアクセスできるパターン。
ネイティブアプリ(iPhone/Android等)やJavaScriptアプリでの利用を想定されている。
stateパラメータの利用が強く推奨される。
Resource Owner Credenials Grant
Client Credentials Grant
クライアントタイプ
参考
Node.js
OAuth Middleware for Express, Koa and Hapi