鍍金池/ 問答/HTML/ 為什么JWT無法做到自撤銷?

為什么JWT無法做到自撤銷?

生成的JWT是無法撤銷的。這個是由什么決定的,是JWT本身的算法決定的嗎?

還有一個問題是,JWT是如何來校驗(yàn)一個Token是否有效的?

同樣的header.payload.signature,每次生成的token都不一樣,它怎么才能知道某個token是有效的?

回答
編輯回答
涼汐
生成的JWT是無法撤銷的,除非是達(dá)到了指定的過期時間。這個是由什么決定的?

就是過期時間會寫在token里或者與token關(guān)聯(lián)。

是JWT的算法決定的嗎?

還有一個問題是,JWT是如何來校驗(yàn)一個Token是否有效的?

一般會定時清理過期的token,并且訪問的時候也會先查看token是否過期。

我有注意到同樣的數(shù)據(jù)生成的JWT,在Node進(jìn)程重啟后就會被判定為無效的Token。看起來像是寫進(jìn)了內(nèi)存一樣,但是肯定不可能。

如果沒有存到數(shù)據(jù)庫里比如redis/memcached或者其他,那就只能在內(nèi)存里。node進(jìn)程重啟無效說明并沒有存到進(jìn)程外部,所以應(yīng)該是內(nèi)存里。

不清楚你需要撤銷什么,如果是希望token都失效,把秘鑰改了就行了。

2018年1月27日 10:58