樓主對jwt的理解差之千里了吧.
1:JWT可以理解為一種特殊結(jié)構(gòu)的TOKEN, 它最大的特點是“內(nèi)含信息”,整個token不只是一個隨機(jī)的字符串,而是可以加上姓名,編號,性別,甚至你的權(quán)限。
2:為什么JWT要這么做,我用隨機(jī)字符串,然后再去數(shù)據(jù)庫或者redis查一道不香嗎! JWT一般都是用于接口,這個訪問量是巨大的,每次都去查庫,性能會受影響。(可以思考下,為什么redis性能不錯,也會有影響呢!)
3:那么一般的設(shè)計就很清楚了 token(jwt) + refresh_token , 因為token(jwt)自己內(nèi)含全部的驗證數(shù)據(jù),如果丟失就麻煩大了,所以有效期一定要盡可能短一些,比如5分鐘。過期后,就用refresh_token 去刷新一下,獲取新的token。 (refresh_token 因為是偶爾使用一次,用在MYSQL里查庫或者redis,都比較穩(wěn)當(dāng)了)
---------------------------
補(bǔ)充:為什么要refresh_token去刷新,是因為token頻繁傳輸,容易被竊取,refresh_toke則只有刷新token的時候使用一次,用完一次就報廢了。