* 仕様書

[REFS[
- [1] '''[CITE@en[RFC 7009 - OAuth 2.0 Token Revocation]] ([TIME[2014-12-21 18:10:21 +09:00]] 版) <http://tools.ietf.org/html/rfc7009#section-2.1>'''
- [12] [CITE@en[RFC 7009 - OAuth 2.0 Token Revocation]] ([TIME[2014-12-21 18:10:21 +09:00]] 版) <http://tools.ietf.org/html/rfc7009#section-4.1.2>
- [13] [CITE[OAuth Parameters]] ([TIME[2015-01-24 07:59:42 +09:00]] 版) <http://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml#token-type-hint>
]REFS]

* 意味

[2] [CODE(URI)@en[[[token_type_hint]]]] [[引数]]は、 [CODE(URI)@en[[[token]]]]
[[引数]]で指定した[[トークン]]の種別を表します [SRC[>>1]]。

[6] この[[引数]]は、[[ヒント]]です [SRC[>>1]]。

* 構文

[7] 次の値が定義されています。
[FIG(short list)[
- [CODE(URI)@en[[[access_token]]]]
- [CODE(URI)@en[[[refresh_token]]]]
]FIG]

[8] その他の値を[[IANA登録簿]] [SRC[>>13]] に登録 [SRC[>>12]] しても構いません [SRC[>>1]]。

* 文脈

[3] [[revokeエンドポイント]]への[[要求]]で指定することができます [SRC[>>1]]。

;; 必須ではありません。

* 処理

[4] [[認可鯖]]は[[トークン]]を探す処理の[[最適化]]にこの指定を使うことができます [SRC[>>1]]。
無視しても構いません [SRC[>>1]]。

[5] [[認可鯖]]は、指定された値に従って探しても見つからなければ、
他の対応している種類の[[トークン]]にも探索範囲を拡大しなければ[['''なりません''']] [SRC[>>1]]。

[9] [[非妥当]]な値が指定されても、無視します [SRC[>>1]]。

;; エラーにはなりません。

;; [10] [CODE(URI)@en[[[error]]=[[unsupported_token_type]]]] なる値が用意されています。
これは[[アクセストークン]]の [[revoke]] には対応していない (が[[更新トークン]]なら対応している)
といったような場合に使うことが想定されているようです。 [CODE(URI)@en[[[token_type_hint]]]]
の値が未対応の値でも、応答には影響しないようです。

* メモ

[11] [[アクセストークン]]と[[更新トークン]]の両方を探す処理に著しい負荷がかかるような[[認可鯖]]の実装は考えにくいですし
(仮にあってもトークンを見るだけでどちらかわかるような工夫をするのは難しくない。)、
結局両方探さないといけないなら実装の簡略化にも寄与しませんから (逆に複雑化している。)、
なぜ敢えてこのような[[ヒント]]を用意する必要があったのか謎です。