JWT實踐總結篇(一)

2021-09-12 04:19:59 字數 880 閱讀 8863

結語近期使用token的機制來實現使用者鑑權是越來越流行了,最近公司這類的專案也是超多。因此就把以前學過的jwt撿起來,特此貼出部落格分享我的總結,也是為了方便溫習。

在專案中使用jwt的話,通常我會引用auth0,基於auth0編寫乙個工具類;工具類普遍編寫兩個方法,那就是建立jwt token和解碼(認證)jwt token。auth0用來生成和校驗token,底層一定有很多演算法和轉碼的功能,有興趣可以閱讀原始碼。

對jwt還不了解的小夥伴可以看看阮哥的文章 >

下面看看我對jwt的總結吧~

總結了這麼多,也說了不少jwt的缺點,那麼下面來說jwt與session的不同之處,以及jwt可代替session的場景。

不同之處

jwt不僅僅是作為身份認證的憑證,還在其payload中儲存著會話資訊,這是jwt和session的最大的區別。乙個在客戶端儲存會話資訊,另乙個在伺服器儲存會話資訊。這是session

1、伺服器壓力增大,通常session是儲存在伺服器記憶體當中的,每個使用者的認證資訊都會儲存在伺服器,當使用者量增大時,無疑會給伺服器帶來很大壓力

2、存在csrf跨站請求偽造攻擊風險,cookie洩露後有可能被攻擊者利用而受到攻擊。例如乙個人剛剛訪問過銀行**,當他無意間進入攻擊**時,**會在被攻擊人不知情情況下,拿到本地的會話資訊進行轉賬操作

3、**侵入。擴充套件性不強。在分布式或微服務的系統架構下,需要實現session同步,當我們在新增服務時,還需要同步session到新增的服務。而token不需要靠考慮在哪一台伺服器登入了。

使用jwt實際開發的話推薦使用auth0,並且要解決token重新整理的問題來保證使用者體驗度。

本文自認為總結的有點全面了,如果有幫助那就關注關注吧,每週最少都會更新一次乾貨嘻嘻

本文總結於:

koa2 jwt實踐中的問題總結

剛學完koa2不久,就想著用koa2這個神器寫個介面玩玩吧,然後寫的過程中遇到了一些阻礙,特此總結。我們先npm i koa jwt jsonwebtoken const koajwt require koa jwt use async ctx,next else use koajwt unless...

原創 每日構建實踐篇(一)

看了 joel spolsky的 軟體開發成功12法則 和 daily builds are your friend 對於每日構建的必要性和實用性都深有感觸。於是為自己的專案新增指令碼以實現快捷的每日構建,並記述這個嘗試的整個過程,方便以後參考。所謂的每日構建就是每天至少一次的重新建立整個工程,每日...

JWT學習筆記(一)

jwt介紹 json web token jwt 是為了在網路應用環境間傳遞宣告而執行的一種基於json的開放標準 rfc 7519 該token被設計為緊湊且安全的,特別適用於分布式站點的單點登入 sso 場景。jwt的宣告一般被用來在身份提供者和服務提供者間傳遞被認證的使用者身份資訊,以便於從資...