www.rfc-editor.org/rfc/rfc7636
PKCE (RFC 7636) 是 授權碼流程 的延伸,用於防止 CSRF 和授權碼注入攻擊。
PKCE 並非一種身分驗證表單,且 PKCE 並非可取代用戶端密碼或其他用戶端身分驗證。即使用戶端使用用戶端密碼或其他形式的 用戶端身分驗證(例如 private_key_jwt),仍建議使用 PKCE。
註:由於 PKCE 並非用來取代用戶端身分驗證,因此並不能將公開用戶端視為機密用戶端。
PKCE 最初設計用於保護行動應用程式的授權碼流程,但由於它能夠防止授權碼注入,因此適用於每種類型的 OAuth 用戶端,甚至是使用用戶端驗證的網頁應用程式。