OAuth2で、要求された付与タイプが「コード」の場合、コールバックはクエリ文字列パラメーター(「?」の後)にそれを含むことに注意してください。ただし、付与が「トークン」の場合、フラグメントとして渡されます(「#」の後)。
これは仕様の一部のようです(https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-26#section-4.2)
そのような決定の背後にある理論的根拠は何でしょうか?
ありがとう、Piotr
OAuth2で、要求された付与タイプが「コード」の場合、コールバックはクエリ文字列パラメーター(「?」の後)にそれを含むことに注意してください。ただし、付与が「トークン」の場合、フラグメントとして渡されます(「#」の後)。
これは仕様の一部のようです(https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-26#section-4.2)
そのような決定の背後にある理論的根拠は何でしょうか?
ありがとう、Piotr
ブラウザがWebサイトによってクエリパラメータを含むURLにリダイレクトされると、クエリ文字列もブラウザがホストに送信するリクエストの一部になります。フラグメントは、Webブラウザーによってローカルでのみ評価され、ホストへの要求には含まれません。
通常はWebアプリケーションがあり、プロバイダーと直接通信する認証コード付与の場合、データをホストに送信することがまさに必要なものです。
Implicit Grantの場合、通常、ブラウザで直接実行されているJavascriptアプリケーションがあります。ブラウザのJSはプロバイダーと直接通信できるため、認証コードをホストに渡す必要はなく、ほとんどの場合、アクセストークンをホストに送信する必要もありません。このようにして、たとえば、サーバーがユーザーの機密データにアクセスすることのないユーザーの同意を得て、別のプロバイダーから照会された情報を使用するWebサイトをサーバー上に作成できます。(信頼できるWebサイトの場合、アクセストークンはサーバーに送信されません。)