使用方法
- 点击生成得到新的 code_verifier,或粘贴已有的。
- code_challenge 按 BASE64URL(SHA-256(code_verifier)) 计算。
- 在授权请求中发送 code_challenge 和 code_challenge_method=S256。
- 在令牌请求中发送 code_verifier。
生成或粘贴 code_verifier,即可得到 OAuth 2.0 PKCE(RFC 7636)所需的 S256 code_challenge。
完全在浏览器中运行。输入内容不会被发送或保存。
Proof Key for Code Exchange(RFC 7636)。授权请求发送哈希后的 code_challenge,令牌请求发送原始 code_verifier,因此仅窃取授权码无法换取令牌。
S256 方式:对 ASCII 的 code_verifier 做 SHA-256,再进行不带填充的 base64url 编码。RFC 7636 示例 dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk 的结果是 E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM。
32 字节随机数做不带填充的 base64url 编码正好 43 个字符,这是 RFC 7636 允许的最短长度(由 A-Z、a-z、0-9、-、.、_、~ 组成,43–128 个字符)。