OAuthのToken Revocationっていう仕様がLast Callに

なったらしいので紹介します。

概要

  • Client側からOAuth 2.0で発行されたAccess TokenやRefresh Tokenを無効化するためのリクエスト/レスポンスを定義
  • CORSサポート
  • AuthZ Serverの実装によって、Authorization Grantに紐づくセッションなどを一緒に落とすとかも可能(だけど細かくは書いてない)

無効化用APIを出してもClient開発者はあまり積極的に使おうとはしないかもしれませんが、連係解除時/ログアウト時/サービス退会時にClientから勝手にToken無効化してくれたら親切で健全で平和な感じで良いと思います。

リクエス

下記のようなPOSTリクエストを送ります。

POST /revoke HTTP/1.1
Host: server.example.com
Content-Type: application/x-www-form-urlencoded
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW

token=45ghiukldjahdnhzdauz&token_type_hint=refresh_token

  • Client Authenticationが必要(MUST?かどうかわからないけどしれっと書いてある。public clientについては・・・)
  • tokenに無効化したい対象を指定(MUST)
  • token_type_hintにtokenの種類を指定(OPTIONAL)。これの拡張はOAuth Token Type Hint Registryにて管理

レスポンス

成功したときは200返す。

CORSサポート

JSONP使ってGETリクエストでリクエストを送っても良い

https://example.com/revoke?token=agabcdefddddafdd&
callback=package.myCallback


Successful response:

package.myCallback();


Error response:

package.myCallback({"error":"unsupported_token_type"});

これぐらいの仕様ですが、どこが最初に実装するのでしょうかねぇ。
ではまた!