JWT(Json Web Token)廣泛應(yīng)用于網(wǎng)站身份驗證
它由3部分組成:
- header 頭部信息:包含了過期時間、簽發(fā)者、客戶端等信息
- payload 其他信息:用戶自定義的一些信息
- 加密部分: header和payload兩部分通過加密算法(一般是sha256)取得
一個token可以這樣表示:
base64(header).base64(payload).sha256(base64(header).base64(header))
其中base64是一種編碼形式
token里的信息對用戶是完全透明的
對于用戶:token里的信息可以從header和payload解析出來,而不需要解密,甚至可以修改,但是加密部分卻因為沒有密鑰而無法修改。
對于服務(wù)器:絕對不能信任header和payload中的信息,因為這些信息用戶完全可以捏造,除非你知道你正在干嘛(Don't use this method unless you know what you're doing),否則千萬要使用加密部分的信息。