安全
JWT · JSON Web Token
/ jot /
JWT 是一種緊湊、自帶資訊的權杖(token),它寫明了「你是誰」,並經過簽章,所以伺服器可以信任它。把它想成音樂節上那種防偽手環:上面印著你的資訊,還有一枚證明確實是工作人員發放的封印。亮一下手環你就被放行了——沒人需要再去名單裡查你。
巧妙之處正在這裡。傳統登入意味著伺服器要在自己的記憶體裡保存一份工作階段,每次請求都去核對。而 JWT 把這些事實直接裝在權杖內部,伺服器只需驗證那個簽章。不用查資料庫——這正是 JWT 在「跨多台伺服器保持登入」這件事上大受歡迎的原因。
一個 JWT 由三段用點號隔開的部分組成——header.payload.signature(標頭.酬載.簽章)——而前兩段只是 Base64 編碼,並非加密。所以千萬別把祕密塞進 JWT;任何拿到它的人都能讀出酬載。簽章能阻止他們篡改,卻擋不住他們查看。
Authorization: Bearer eyJhbGci.eyJzdWIi.SflKxw // header . payload . signature
隨請求傳送的 JWT:三段式,已簽章,伺服器無需查表即可驗證。
讀作「jot」。由於 JWT 在過期之前無法被「收回」,請把有效期設得短一些——它一旦發出去,就一直有效,直到時間耗盡為止。
又稱
另見