← 全部工具

OAuth PKCE 流程視覺化

逐步探索 Authorization Code with PKCE,產生隨機 verifier 與真實 S256 challenge,檢查各方責任。

oauth-pkce-flow本機處理

1. 設定與探索

所有輸入留在本分頁,不寫入瀏覽器儲存空間、不放入網址、不發送網路請求。

以 Web Crypto 真正產生 32-byte 隨機 verifier 及 S256 challenge。示範不執行授權、導向或 token 交換;不接受正式 token/秘密。

1 / 6

2. 結果與判讀

選擇範例、填寫欄位或探索流程。

用戶端瀏覽器授權伺服器
  1. 產生全新 32-byte 隨機 verifier,計算 BASE64URL(SHA256(verifier));verifier 僅暫存。

  2. 傳送 response_type=code、client_id、精確 redirect_uri、state、code_challenge 與 S256;OIDC 另使用 nonce。

  3. 驗證使用者並取得同意;將短效單次 authorization code 綁定 client、redirect URI 與 challenge。

  4. 在 redirect URI 接收 code 並驗證 state;勿記錄 code,也不可經不受信任來源交換。

  5. 經 HTTPS 傳送 authorization_code grant、code、redirect_uri 與原 code_verifier;機密用戶端仍需驗證自身。

  6. 計算 verifier 的 S256、比較已綁定 challenge、消耗 code,全部通過才發 token;PKCE 不是用戶端身分驗證。

圖中的伺服器步驟僅供教學;此頁沒有驗證伺服器。

預覽最多 32,000 字元;複製、下載與展開文字均保留完整內容。複製失敗時可選取完整文字。

1. 用戶端
產生全新 32-byte 隨機 verifier,計算 BASE64URL(SHA256(verifier));verifier 僅暫存。

2. 瀏覽器至授權伺服器
傳送 response_type=code、client_id、精確 redirect_uri、state、code_challenge 與 S256;OIDC 另使用 nonce。

3. 授權伺服器
驗證使用者並取得同意;將短效單次 authorization code 綁定 client、redirect URI 與 challenge。

4. 用戶端
在 redirect URI 接收 code 並驗證 state;勿記錄 code,也不可經不受信任來源交換。

5. 用戶端至 token 端點
經 HTTPS 傳送 authorization_code grant、code、redirect_uri 與原 code_verifier;機密用戶端仍需驗證自身。

6. 授權伺服器
計算 verifier 的 S256、比較已綁定 challenge、消耗 code,全部通過才發 token;PKCE 不是用戶端身分驗證。
展開可選取的完整文字
1. 用戶端
產生全新 32-byte 隨機 verifier,計算 BASE64URL(SHA256(verifier));verifier 僅暫存。

2. 瀏覽器至授權伺服器
傳送 response_type=code、client_id、精確 redirect_uri、state、code_challenge 與 S256;OIDC 另使用 nonce。

3. 授權伺服器
驗證使用者並取得同意;將短效單次 authorization code 綁定 client、redirect URI 與 challenge。

4. 用戶端
在 redirect URI 接收 code 並驗證 state;勿記錄 code,也不可經不受信任來源交換。

5. 用戶端至 token 端點
經 HTTPS 傳送 authorization_code grant、code、redirect_uri 與原 code_verifier;機密用戶端仍需驗證自身。

6. 授權伺服器
計算 verifier 的 S256、比較已綁定 challenge、消耗 code,全部通過才發 token;PKCE 不是用戶端身分驗證。

不發送授權或 token 請求。示範值僅留在記憶體,勿貼正式 code、token 或秘密。

資料/規則日期: 2026-10-21 · 官方來源

如何使用這個工具

產生暫存範例、逐步查看用戶端與授權伺服器的責任,了解 verifier 如何保護 code 交換。

不適合用在什麼情況

不發送授權或 token 請求。示範值僅留在記憶體,勿貼正式 code、token 或秘密。

閱讀實作指南 →