www.rfc-editor.org/rfc/rfc7636
PKCE (RFC 7636) 是 授权码流程 的扩展,用于防止 CSRF 和授权码注入攻击。
PKCE 不是一种客户端认证形式,并且 PKCE 无法 替换客户端机密或其他客户端认证方式。即使客户端使用客户端机密或其他形式的 客户端认证(如 private_key_jwt),仍建议使用 PKCE。
注意:由于 PKCE 无法替换客户端认证,因此它不能将公有客户端视为机密客户端。
PKCE 最初旨在保护移动应用程序中的授权码流程,但其防止授权码注入的能力使其适用于每种类型的 OAuth 客户端,即使是使用客户端认证的 Web 应用程序。