jwt作為取代session cookie機制的替代,實際運用會存在什麼問題?

時間 2021-05-08 14:26:56

1樓:

看了相關的資料,來答一下

用jwt實現單點登入,要考慮續簽和登出。

續簽:主要通過更新token和黑名單解決,黑名單如果採用userId為key,時間為value,只要後續訪問的token簽名時間組織value之前就算失效,這樣就不用生成過多的黑名單。

登出,則是不生成新token,直接更新黑名單為退出時間,這樣以後訪問的token都會無效。

2樓:可少

jwt不就是

json格式,簽名,加密解密,放http頭???這麼個東西還搞乙個官網,弄得正式的像個規範??那我搞個xwt規範好了,把json換成xml 笑尿

有證據表明,jwt可能是個經過包裝的技術炒作

Okta 公司的 Randall Degges 說之前很多 jwt 的部落格軟文都是他們公司寫的,

最近他卻在各種大會上反對用 jwt 做session管理。有興趣的可以Google一下 jwt + Randall Degges 看看。

不過他提出的反對理由,我個人看來並不是很有說服力。也許裡面又牽涉到什麼利益關係。

Why JWTs Suck as Session Tokens

JSON Web Tokens Suck - Randall Degges (DevNet Create 2018)

3樓:王絮飛

缺點在於,一大堆文章告訴你不要用jwt代替session,卻沒人告訴你在介面這種加不上session的地方應該用什麼來驗證,反正oauth就是用token來驗證,jwt是token的一種.

4樓:「已登出」

jwt最好用於"一次性授權Token"的設計, 時效短.

對於長時間的Session, 比如登陸這種, jwt沒有太大使用的必要.

題主可以看一下這個:

不要用 JWT 來做 Web 應用的會話管理 (文章最後有英文引用, 英文好的話推薦看英文)

pros-and-cons-in-using-jwt-json-web-tokens

如果你非要用來做Session等服務的話

可以看一下這個Invalidating JSON Web Tokens

5樓:

我覺得倒沒有什麼大的問題,不過相對於cookie-session,還是有一些東西考慮進去的:

大致再複習下兩個方案吧:Session會把狀態維護在server端,瀏覽器只儲存sessionId(當然你可以儲存更多額外的東西),服務端根據sessionId再去讀取狀態(使用者許可權之類),可以理解為雙方被月老牽了紅線,會話通訊期間有個保持,使用session-cookie意味著stateful;JWT則可以把許可權控制資訊和更多的內容傳遞給瀏覽器或其他終端(mobile等)使用,服務端(一般就是auth伺服器嘍)負責發放JWT,模擬保險箱給你發鑰匙,你只要有鑰匙,什麼時候開都行,不需要在客戶端和真正的資源伺服器間繫結關係,也就是stateless。更多細節以後再說(懶)。

再說說注意點吧:

1.JWT要有過期時間,JWT過期後Token的置換問題

2.JWT的儲存問題,用JWT有兩大儲存選項local storage、session storage和cookie,如何選擇?用Cookie意味著不能用httponly,不然要jwt用處也不明顯

3.如果JWT採用refreshToken換Token的策略,revoke怎麼搞?畢竟你不能revoke jwt,否則搞回來就成有狀態的了

掌機是否終究會被手機取代?

短期看來不可能。最簡單的乙個原因,掌機現在有接近20個鍵位,你手機那屁大點螢幕上哪給我騰出這些按鍵來?知乎上向來有很多人在做著手機取代掌機的春秋大夢,我只想說,該醒醒了,快買個ns回家健健身吧。至於終究的話,說不定那一天手機也被淘汰了呢。 乜乜星xX 剛好在其他問題裡回答了差不多的問題,我覺得可以作...

手機未來能取代專業攝像機的地位嗎?

藍海豚 我覺得未來肯定能取代專業攝像機,就看這個未來會多快到來,5年?還是10年?上面說的光通量什麼的都不是問題,因為最好的攝像機就是人的眼睛,人的眼睛體積擺在那裡在,攝像機發展到的最高水平就是達到人眼的水平 超視距能力,這個手機未來10年左右應該能夠達到近似的水平。 的確有部分專業攝像機在感測器部...

作為小白如何選擇掌機?

Tomas 看你是要玩什麼型別的遊戲了,如果是休閒娛樂,還有一些rpg的話,其實lite應該能滿足你了,如果要一些多人聚會遊戲,還有希望有更好的畫質表現,動作遊戲之類的,目前可以考慮續航版,再加個pro手柄。核心思路就是掌機選lite,主機選續航。 phoneboy 有錢ns,沒錢ns lite,p...