高級功能
本指南面向進階使用者與開發者,介紹 JWT Parser 工具的高級能力與使用方式。
歷史記錄管理
自動歷史追蹤
此工具會自動將已解析的權杖儲存到瀏覽器本機儲存空間中:
- 持久保存:重新啟動瀏覽器後仍可保留歷史記錄
- 隱私優先:資料只保存在您的瀏覽器中
- 自動清理:最多保留最近 50 個權杖
歷史操作
- 從歷史記錄載入:點擊任一歷史項目即可重新載入該權杖
- 清空歷史記錄:一次刪除所有已儲存記錄
- 選擇性重新分析:挑選特定權杖再次分析
歷史記錄資訊
每筆歷史記錄都會顯示:
- 演算法:使用的簽章演算法
- 到期時間:權杖何時過期
- 時間戳記:權杖被解析的時間
- 權杖預覽:前 50 個字元
權杖分析功能
演算法識別
工具會自動識別並顯示:
- 對稱演算法:HS256、HS384、HS512
- 非對稱演算法:RS256、RS384、RS512、ES256、ES384、ES512
- none 演算法:未加密權杖(僅建議用於開發)
到期時間分析
- 到期時間:將 Unix 時間戳轉換為可讀日期與時間
- 時區顯示:依照您的本地時區呈現
- 過期提示:清楚標示權杖是否已過期
Claims 分析
- 標準 Claims:自動識別 RFC 7519 標準 claims
- 自訂 Claims:顯示應用程式特定的欄位
- 巢狀物件:支援複雜的 payload 結構
複製與匯出功能
結構化複製
複製結果時,您會得到如下結構化內容:
Header:
{
"alg": "HS256",
"typ": "JWT"
}
Payload:
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022,
"exp": 1516242622
}
Signature:
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
複製結果的使用情境
- 文件撰寫:放入 API 文件中
- 除錯協作:與團隊成員分享分析結果
- 測試準備:用於自動化測試場景
- 報告整理:納入安全稽核報告
錯誤處理與驗證
格式驗證
工具會執行完整的格式檢查:
- 結構驗證:確認 JWT 恰好由 3 個以句點分隔的部分組成
- Base64URL 驗證:檢查每一部分是否為合法 base64url
- JSON 驗證:確保 header 與 payload 為有效 JSON
錯誤訊息
清楚且可操作的錯誤提示包括:
- 格式無效:提供 JWT 結構方面的具體指引
- 解析錯誤:說明解析失敗的細節
- 編碼問題:協助排查 base64url 編碼錯誤
整合模式
開發工作流程整合
- API 測試:解析 API 回應中的權杖
- 認證除錯:在開發過程中分析權杖
- 程式碼審查:在合併請求中核對權杖結構
- 文件示例:為 API 文件產生範例
測試整合
- 單元測試:在斷言中使用解析後的資料
- 整合測試:驗證測試情境中的權杖結構
- 安全測試:分析權杖中的潛在安全風險
效能考量
用戶端處理
- 無網路呼叫:所有解析都在瀏覽器中完成
- 處理快速:多數權杖都能即時得到結果
- 記憶體高效:佔用記憶體較少
- 可離線使用:無網路時也能運作
大型權杖處理
- 大小上限:可處理瀏覽器記憶體允許範圍內的權杖
- 效能優化:針對常見 JWT 大小做了最佳化
- 錯誤處理:對過大的權杖提供平穩處理
瀏覽器相容性
支援的瀏覽器
- Chrome:完整支援(推薦)
- Firefox:完整支援
- Safari:完整支援
- Edge:完整支援
所需能力
- Local Storage:用於歷史記錄功能
- Clipboard API:用於複製功能
- JSON Parsing:用於權杖分析
安全最佳實務
權杖處理
- 不要記錄權杖:避免在日誌中輸出敏感權杖
- 安全環境:僅在安全且私密的環境中使用
- 定期清理:定期清空歷史記錄
- 存取控制:確保只有授權使用者可使用工具
資料隱私
- 僅本地儲存:不會將資料傳送到外部伺服器
- 瀏覽器隔離:資料始終保留在目前瀏覽器中
- 及時清除:切換情境時應清空資料
疑難排解
常見問題
- 權杖無法解析:檢查格式與編碼是否正確
- 歷史記錄未保存:確認瀏覽器支援本機儲存空間
- 複製失敗:檢查瀏覽器剪貼簿權限
- 顯示異常:嘗試重新整理頁面
除錯建議
- 檢查主控台:查看是否有 JavaScript 錯誤
- 確認格式:確保權杖結構正確
- 使用範例:先用內建範例權杖測試
- 清除快取:必要時清理瀏覽器快取
API 參考
權杖結構
interface ParsedJWT {
header: string; // 格式化後的 JSON 字串
payload: string; // 格式化後的 JSON 字串
signature: string; // 原始簽章
}
interface JWTInfo {
algorithm: string; // 簽章演算法
type: string; // 權杖類型
expires: string; // 到期時間
}
歷史記錄結構
interface HistoryRecord {
id: string; // 唯一識別碼
token: string; // 完整 JWT 權杖
algorithm: string; // 簽章演算法
expires: string; // 到期時間
timestamp: number; // 解析時間戳記
}