在瀏覽器裡解碼 JWT、核對簽章,或簽一枚測試用權杖。支援 HMAC、RSA 和 ECDSA。權杖不會上傳。只有點了用 JWKS 驗簽,瀏覽器才會去取公鑰。
用 JWKS 驗簽時,瀏覽器只去這個網址取公鑰,權杖仍留在本頁。對方必須允許瀏覽器存取。
HS 用上面的金鑰。RS、PS、ES 用金鑰框。驗簽看的是權杖框。產生 JWT 讀的是標頭和承載。
JWT 是三段 Base64url:標頭、承載、簽章。標頭和承載是 JSON,沒有加密,拿到權杖的人都能讀。簽章用來說明承載沒被改過,前提是你有 HMAC 金鑰或公鑰。這一頁在瀏覽器裡解碼、驗簽和產生。它會標出 alg 為 none、缺少或已到點的 exp、把時間寫成毫秒,以及短於 32 位元組的 HMAC 金鑰。權杖不上傳。雜湊頁上的校驗不是 JWT 簽章。exp 是以秒計的 Unix 時間,換時區到 時間戳 頁。
exp 等於或早於現在,就標成已過期。{"sub":"user-1"},HMAC 金鑰是 secret。金鑰是 Base64 不勾。點驗簽會說簽章一致。安全檢查會說金鑰只有 6 位元組,而且沒有 exp。範例故意用短金鑰。iat 和 exp。選 1 小時再產生,會按現在的秒數寫上這兩項。範本裡的使用者會填 sub 1234567890、name John Doe、email [email protected]。存取會填 sub user-1 和 scope read。HS256、HS384、HS512 用金鑰。短於 32 位元組也能簽,安全檢查會警告。只有金鑰本身是 Base64 時才勾金鑰是 Base64。RS256、RS384、RS512、PS256、PS384、PS512、ES256、ES384、ES512 用 PEM 或 JWK。公鑰用來驗簽。PKCS#8 私鑰用來產生。RSA 私鑰裡帶著公鑰,也可以拿來驗簽。可以貼 SPKI(BEGIN PUBLIC KEY)、PKCS#8(BEGIN PRIVATE KEY)或 PKCS#1 的 RSA。憑證會被拒絕。寫著 BEGIN EC PRIVATE KEY 的 EC 鑰匙也會被拒絕,請匯出成 PKCS#8。alg 為 none 不會當成有效。驗簽以標頭裡的 alg 為準。HMAC 金鑰不會拿去驗 RSA。exp、nbf、iat 都是秒。十三位數字只提示,不換算。JWKS 要是一組鑰匙,或單獨一把 JWK。有多把卻沒有 kid 會報錯。標頭或承載若是陣列,產生 JWT 會停住。
sub 和 exp。沒有。那只是 Base64url。密碼、身分證字號、卡號不要放進去。
權杖要有兩個點,兩段都是 JSON。標頭的 alg 得是這一頁認識的。HS 要用簽發時的同一把金鑰,金鑰是 Base64 的勾選也要和金鑰的存法一致。RSA 和 EC 要公鑰,不是憑證。exp 過了是安全檢查裡的警告,不是簽章對不上。
HS256 是一把共用金鑰。RS256 用私鑰簽發、公鑰驗簽。不要把 HMAC 金鑰交給別的服務,交給他們公鑰。
標頭表示沒有簽章。這一頁不會把它當成有效權杖。
不能。把簽發方的 exp 設短,或在簽發方做失效名單。
驗簽在瀏覽器裡完成。用 JWKS 驗簽是唯一的請求,而且只下載公鑰,不上傳權杖。即便如此,也不要在共用電腦上貼上還在生效的正式權杖。時間差了幾小時的話,數字本身是 UTC,承載下面那一行是這台電腦的鐘。