<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効エンドポイント<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">revocation endpoint</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新トークン</anchor>を<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">revocation</rt></rubyb></dfn>させる
(<dfn>revoke</dfn> する) ための<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エンドポイント</anchor>です。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <strong><cite xml:lang="en">RFC 7009 - OAuth 2.0 Token Revocation</cite> (<time>2014-12-21 18:10:21 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc7009">http://tools.ietf.org/html/rfc7009</anchor-external></strong></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <cite xml:lang="en">RFC 6749 - The OAuth 2.0 Authorization Framework</cite> (<time>2014-12-15 14:15:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc6749#section-3.1">http://tools.ietf.org/html/rfc6749#section-3.1</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <cite xml:lang="en">RFC 6749 - The OAuth 2.0 Authorization Framework</cite> (<time>2014-12-15 14:15:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc6749#section-5.2">http://tools.ietf.org/html/rfc6749#section-5.2</anchor-external></li></ul></refs></section><section><h1>意味</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効要求<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">revocation request</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>が自身の保持する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新トークン</anchor>を無効化することを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>に求めるものです。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可サーバー</anchor>は、
指定された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークン</anchor>を無効にすると共に、
関係する他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークン</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション</anchor>データ等の関係するデータを消去できます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実装</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新トークン</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">失効 (OAuth)</title></anchor>に対応しなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実装</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">失効 (OAuth)</title></anchor>に対応する<SHOULD xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき</SHOULD>です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> しかしながら、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実装</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">失効 (OAuth)</title></anchor>に対応すること自体は必須とはなっていません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth</anchor> 本体に対応していても、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">失効 (OAuth)</title></anchor>には対応していない可能性があります。
また<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新トークン</anchor>を使わない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実装</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新トークン</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">失効 (OAuth)</title></anchor>にも対応していない
(できない) かもしれません。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新トークン</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">失効 (OAuth)</title></anchor>により<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">失効 (OAuth)</title></anchor>されることは保証されませんし、
されたかどうか直接知ることもできません。
確実に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">失効 (OAuth)</title></anchor>したければ両方を明示的に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">失効 (OAuth)</title></anchor>する必要があります。</comment-p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth</anchor> はしばしば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ログイン</anchor>の仕組みとして使われます。
そのような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>) は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">末端利用者</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">資源所有者</anchor>) が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ログアウト</anchor>したり<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アンインストール</anchor>したりした時に、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークン</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">失効 (OAuth)</title></anchor>させることができます。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークン</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">失効 (OAuth)</title></anchor>させることで、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ログアウト</anchor>等の後<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">末端利用者</anchor>が気づかないまま<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークン</anchor>が残ってしまうことを防げますし、
乱用されることも防げます。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor> するのは任意であり、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">末端利用者</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor>
したかどうか直接知ることができないので、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>が悪意を持っている場合の対策にはならず、
せいぜい流出した時の被害を抑えるくらいの役目しか果たしませんが...</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">末端利用者</anchor>に対して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可承諾</anchor>の一覧を提示している場合には、
そこからも消去されるでしょう。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src> 使わなくなった<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>が一覧に残り続けるよりは良さそうです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revokeエンドポイント</anchor>が <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">200</anchor></code>
を返した後その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークン</anchor>を使おうと試みてはなりません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> なお、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークン</anchor>はこの仕組み以外でも無効になることがあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>は、いつでも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークン</anchor>が無効にされる可能性を考慮しておかなければなりません
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">資源所有者</anchor>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor> するかもしれませんし、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>が自身の判断で無効化するかもしれません。</p></section><section><h1>クライアントの要求</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>は、 <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">POST</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>を使います <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONP</anchor> を使う場合には <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GET</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>でも構いません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Google</anchor> は <code xmlns="http://www.w3.org/1999/xhtml" class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GET</anchor></code> を使っています <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;45</anchor-internal></src>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONP</anchor> では無いようです。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> 以前からある独自の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> かもしれません。<refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <cite xml:lang="ja">Using OAuth 2.0 for Web Server Applications - Google Accounts Authentication and Authorization — Google Developers</cite> (<time>2014-12-05 11:52:25 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developers.google.com/accounts/docs/OAuth2WebServer#tokenrevoke">https://developers.google.com/accounts/docs/OAuth2WebServer#tokenrevoke</anchor-external></li></ul></refs></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revokeエンドポイント</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor>
を得る方法は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth</anchor> 仕様の範囲外です。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鯖</anchor>のドキュメントから調べても構いませんし、
自動的な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発見</anchor>の仕組みを使っても構いません。いずれにせよ信頼できる情報源に拠る必要があります。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revokeエンドポイント</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPS</anchor> でなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS</anchor> を使わなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPS</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> であることを<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">検証<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">verify</rt></rubyb>しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>は偽の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revokeエンドポイント</anchor>を検出するため、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>の検証などにより<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認証</anchor>しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> もし偽の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効エンドポイント</anchor>のつもりで偽の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エンドポイント</anchor>にトークンを送ってしまうと、
有効な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新トークン</anchor>を悪意ある者に送ってしまうことになり、
危険です。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効エンドポイント</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素のHTTP</anchor> でも利用できるなら、
そちらでの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">失効 (OAuth)</title></anchor>にも対応する<SHOULD xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき</SHOULD>です。
しかしこれを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効エンドポイント</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> として出版しては<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> こうすることにより、誤って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素のHTTP</anchor> 
で送信してしまったトークンも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">失効<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">失効 (OAuth)</title></anchor>できます <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revokeエンドポイント</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> は、
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/x-www-form-urlencoded</anchor></code>
形式の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">query</anchor> を含んでいても構いません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;10</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>を追加する時は、元の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">query</anchor> を残さなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;10</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>は <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">POST</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">payload body</anchor> または
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONP</anchor> <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GET</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL query</anchor> に
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/x-www-form-urlencoded</anchor></code> 
形式で次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>を指定します <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。<figure class="list members"><figcaption><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">payload body</anchor> または <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL query</anchor> (<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/x-www-form-urlencoded</anchor></code>)</figcaption><dl><dt><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">token</anchor></code></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor> したい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークン</anchor>を指定しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</dd><dt><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">token_type_hint</anchor></code></dt><dd><code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">token</anchor></code> の種別のヒントです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>はこれを指定しても構いません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></dd><dt><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">callback</anchor></code></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONP</anchor> の場合に、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">関数</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">修飾名</anchor>を指定します <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</dd></dl></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント認証</anchor> (または認証できない場合には
<code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">client_id</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>) も含めます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p></section><section><h1>認可鯖の処理</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェントベースのアプリケーション</anchor>で使われるかもしれない場合には、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CORS</anchor> に対応して構いません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> 特別な <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSRF</anchor> 対策は必要無さそうです。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>は、まず (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">機密</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>なら)
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアントcredentials</anchor>を<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">検証<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">validate</rt></rubyb>します <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント認証</anchor>参照。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> には明記されていませんが、
整合性を考えると<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">機密</anchor>でなくても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアントcredentials</anchor>が発行されている場合には検証するべきと思われます。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>は、次に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークン</anchor>が当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>に発行されたものか<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">検証<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">verify</rt></rubyb>します。
失敗した場合は、エラーを返して終わります。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> には明記されていませんが、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>の重複や欠落などがあれば、
エラーを返して終わるべきと思われます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>は、その後<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークン</anchor>を非妥当化します。非妥当化は直ちに行われ、
以後<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークン</anchor>は使えなくなります。実際には伝播遅延があるかもしれませんが、
できるだけ短期間で反映されるようにするべきです。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">token_type_hint</anchor></code> の指定は、あまり意味がありません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><code xmlns="http://www.w3.org/1999/xhtml" class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">token_type_hint</anchor></code> 参照。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor> に関する方針次第で、
関連するトークンや元になった<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可承諾</anchor>をも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor>
して構いません。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新トークン</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor> においては、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor>
にも対応しているなら、同じ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可承諾</anchor>に基づくすべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>をも
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor> する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べき</strong></anchor>です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor> においては、
対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新トークン</anchor>も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor> して構いません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor> に成功したい場合や、
非妥当な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">トークン</anchor>が指定されていた場合は、 <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">200</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応答</anchor>を返します <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="88" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[88]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>は、誤りの場合には、 <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">400</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応答</anchor>で次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>を
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> (<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/json</anchor></code>) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">payload body</anchor> の 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>の名前と値 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>なら <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON文字列</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor>なら <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON数値</anchor>) に含めます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;30</anchor-internal></src>。<figure class="list members"><figcaption><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">payload body</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>)</figcaption><dl><dt><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="84" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[84]</anchor-end> <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">error</anchor></code></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤り符号</anchor>を指定しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;30</anchor-internal></src>。</dd><dt><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[85]</anchor-end> <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">error_description</anchor></code></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">人間可読</anchor>な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤り</anchor>の説明を指定して構いません
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;30</anchor-internal></src>。</dd><dt><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="86" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[86]</anchor-end> <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">error_uri</anchor></code></dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">人間可読</anchor>な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤り</anchor>の説明を含む<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webページ</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor>
を指定して構いません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;30</anchor-internal></src>。</dd></dl></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DoS攻撃</anchor>に注意しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>は、 <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">200</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応答</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">payload body</anchor> を無視します 
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>は、 <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">503</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応答</anchor>を受信したらトークンはまだ有効と判断しなければならず、
適当な間を置いて再試行して構いません。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鯖</anchor>は <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Retry-After:</anchor></code>
で利用できないと思われる期間を示すことができます。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONP</anchor> の場合不正な <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revokeエンドポイント</anchor>が不正なコードを注入する危険性があることに注意するべきです <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> そんなレベルで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認可鯖</anchor>が信用できない状況では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth</anchor> 関連の処理がすべて危険そうですが...</comment-p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth 1.0</anchor> 本体には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> はありませんでした。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth Session Extension</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> を規定していました <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Google</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth 1.0</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセストークン</anchor>について、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AuthSub</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revokeエンドポイント</anchor>を使って <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revoke</anchor> できる <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;48</anchor-internal></src>
としていました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Twitter</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth 2.0</anchor> 向けに独自仕様の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revokeエンドポイント</anchor>を実装しています
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;50</anchor-internal></src>。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> <cite xml:lang="en">Implementers' Draft: OAuth Session 1.0 Draft 1</cite> (<time>2008-08-22 09:10:13 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://oauth.googlecode.com/svn/spec/ext/session/1.0/drafts/1/spec.html#rfc.section.7">http://oauth.googlecode.com/svn/spec/ext/session/1.0/drafts/1/spec.html#rfc.section.7</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> <cite xml:lang="ja">OAuth 1.0 API Reference - Google Accounts Authentication and Authorization — Google Developers</cite> (<time>2014-12-05 11:52:26 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developers.google.com/accounts/docs/OAuth_ref#RevokeToken">https://developers.google.com/accounts/docs/OAuth_ref#RevokeToken</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> <cite>POST oauth2/invalidate_token | Twitter Developers</cite> (<time>2015-03-05 11:07:26 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://dev.twitter.com/oauth/reference/post/oauth2/invalidate/token">https://dev.twitter.com/oauth/reference/post/oauth2/invalidate/token</anchor-external></li></ul></refs></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7009</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OAuth</anchor> 関連仕様の中でも特に品質が低いようです。
他の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> を参照している箇所は章番号だけでどの規定が引用されているのか自明ではなかったりしますし、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">事実の文</anchor>による状況の説明ばかりで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">助動詞</anchor>が含まれる規定の文は少なく、
前世紀レベルです。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONP</anchor> に関する部分に至っては規定がほとんどなく例示に頼っています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> は未だに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONP</anchor> を考慮しているようですが、出版された2013年の時点ではぎりぎりまだ必要があったかもしれません。
現在では最早何の意味もなく、危険なだけなので <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CORS</anchor> を使うべきでしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> <cite xml:lang="en">OAuth2 · reddit/reddit Wiki</cite>
(<time>2015-03-05 16:30:32 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/reddit/reddit/wiki/OAuth2#user-content-manually-revoking-a-token">https://github.com/reddit/reddit/wiki/OAuth2#user-content-manually-revoking-a-token</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> <cite xml:lang="en-US">OAuth 2.0 Authentication | Viadeo API</cite>
(<time>2015-03-05 17:54:09 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://dev.viadeo.com/documentation/authentication/oauth-authentication/">http://dev.viadeo.com/documentation/authentication/oauth-authentication/</anchor-external></figcaption><blockquote><p>In order to revoke a token (i.e. remove the bridge between your application and Viadeo) use  https://secure.viadeo.com/oauth-provider/revoke_access_token2 with access token as parameter</p><p>https://secure.viadeo.com/oauth-provider/revoke_access_token2?</p><p>client_id=&lt;YOUR_API_KEY&gt;&amp;</p><p>client_secret=&lt;YOUR_API_SECRET&gt;&amp;</p><p>redirect_uri=http://www.example.com/oauth_redirect&amp;</p><p>access_token=&lt;ACCESS_TOKEN_TO_REVOKE&gt;</p><p> </p><p>In response, you will get the following json response:</p><p>{&quot;token_revoked&quot;}</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> <cite xml:lang="en">OAuth | Heroku Dev Center</cite>
(<time>2015-03-06 08:08:09 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://devcenter.heroku.com/articles/oauth#revoking-authorization">https://devcenter.heroku.com/articles/oauth#revoking-authorization</anchor-external></figcaption><blockquote><p>Revoking an authorization will block associated tokens from making further requests.</p><p>DELETE /oauth/authorizations/{authorization-id}</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> <cite xml:lang="en">Dropbox - Core API - endpoint reference</cite>
(<time>2015-03-06 09:23:18 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.dropbox.com/developers/core/docs">https://www.dropbox.com/developers/core/docs</anchor-external></figcaption><blockquote><p>/disable_access_tokenPythonJavaRubyPHP</p><p>DESCRIPTION</p><p>Disables the access token used to authenticate the call. This method works for OAuth 1 and OAuth 2 tokens.</p><p>URL STRUCTURE</p><p>https://api.dropbox.com/1/disable_access_token</p><p>METHOD</p><p>POST</p><p>RETURNS</p><p>An empty JSON dictionary, which indicates success.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> <cite xml:lang="en">UserVoice OAuth Reference - UserVoice Developer</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UserVoice</anchor> 著, <time>2015-01-24 06:02:32 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developer.uservoice.com/docs/api/oauth/#_api_v1_oauth_request_token_">https://developer.uservoice.com/docs/api/oauth/#_api_v1_oauth_request_token_</anchor-external></figcaption><blockquote><p>Revoke	GET or POST	/api/v1/oauth/revoke.json</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> <cite xml:lang="en">Authentication | feedly Cloud API</cite>
(<time>2015-01-23 08:10:58 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developer.feedly.com/v3/auth/#revoking-a-refresh-token">https://developer.feedly.com/v3/auth/#revoking-a-refresh-token</anchor-external></figcaption><blockquote><p>refresh_token</p><p>string The refresh token returned in the previous code.</p><p>client_id</p><p>string The clientId obtained during application registration.</p><p>client_secret</p><p>string The client secret obtained during application registration.</p><p>grant_type</p><p>string This field must contain a value of revoke_token.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> <cite xml:lang="en">Strava API Authentication</cite>
(<time>2016-04-15 06:01:09 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://strava.github.io/api/v3/oauth/">https://strava.github.io/api/v3/oauth/</anchor-external></figcaption><blockquote><p>Deauthorization</p><p>Allows an application to revoke its access to an athlete’s data. This will invalidate all access tokens associated with the ‘athlete,application’ pair used to create the token. The application will be removed from the Athlete Settings page on Strava. All requests made using invalidated tokens will receive a 401 Unauthorized response.</p><p>Parameters</p><p>access_token:	string required</p><p>Responds with the access token submitted with the request.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> <cite xml:lang="en-US">OAuth 2.0 Authentication | Viadeo API</cite>
(<time>2015-03-05 17:54:05 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://dev.viadeo.com/documentation/authentication/oauth-authentication/">http://dev.viadeo.com/documentation/authentication/oauth-authentication/</anchor-external></figcaption><blockquote><p>In order to revoke a token (i.e. remove the bridge between your application and Viadeo) use  https://secure.viadeo.com/oauth-provider/revoke_access_token2 with access token as parameter</p><p>https://secure.viadeo.com/oauth-provider/revoke_access_token2?</p><p>client_id=&lt;YOUR_API_KEY&gt;&amp;</p><p>client_secret=&lt;YOUR_API_SECRET&gt;&amp;</p><p>redirect_uri=http://www.example.com/oauth_redirect&amp;</p><p>access_token=&lt;ACCESS_TOKEN_TO_REVOKE&gt;</p><p> </p><p>In response, you will get the following json response:</p><p>{&quot;token_revoked&quot;}</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> <cite xml:lang="en">Strava Developers</cite>
(<time>2018-11-15 07:15:08 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developers.strava.com/docs/authentication/#deauthorization">https://developers.strava.com/docs/authentication/#deauthorization</anchor-external></figcaption><blockquote><p>Applications can revoke access to an athlete’s data. This will invalidate all refresh tokens and access tokens that the application has for the athlete, and the application will be removed from the athlete’s apps settings page. All requests made using invalidated tokens will receive a 401 Unauthorized response.</p><p>The endpoint is POST https://www.strava.com/oauth/deauthorize.</p><p>access_token required string, in query	Responds with the refresh tokens that were revoked.</p></blockquote></figure></section></body></html>