PKCE
次の3つの追加パラメタを使う。
table:追加パラメタ
code_verifier ランダムな文字列。
code_challenge code_verifier の値に対して code_challenge_method の計算をして得られた値。
code_challenge_method code_challenge の計算方法。 plain, S256 のどちらかの値を取る。
手順
1. Clientはあらかじめ code_verifier を生成し、code_challenge を計算しておく。 コードが悪意あるClientに横取りされていた場合でも、最初に生成したcode_verifierをこいつは知らないはず。 というわけで横取り攻撃を防げる。