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