SteemSnap - JWT (JSON Web Token) 學習日記 - 04 - Session-Cookies Vs. JWT Authentication

剛開始學習使用有關 JWT 的 Authentication。

什麼是 JWT (JSON Web Token)?
SteemSnap - JWT (JSON Web Token) 學習日記 - 01

Basic session-based Authentication flow。
SteemSnap - JWT (JSON Web Token) 學習日記 - 02 - Basic session-based Authentication flow

Basic JWT-based Authentication flow。
SteemSnap - JWT (JSON Web Token) 學習日記 - 03 - Basic JWT-based Authentication flow


image.png
Source - Ben Awad

業界使用 session-cookie 模式已有很長時間了。例如在 Ruby on Rails 盛行的年代。

也因為時間夠長,在實施 Authentication 功能時,可以在線找到許多不同語言的解決方案。基本上不會怕在 Stackoverflow 上找不到需要的提示。

因此,在前期沒有External Module時在 App 上使用上 JWT-based 這樣的基於 Token 的 Authentication 相比,開發人員更容易傾向使用 session-based。

感謝 NodeJS 的興起。 有許多 Module/Library 為 NodeJs 開發人員提供了一種簡單得多的方法來設置基於 Token 的 Authentication。 如passport-jwt


Session-Cookies Vs. JWT Authentication

Scalable 擴展性

在現代Web應用程序中,尤其是在 react & vue 應用程序的興起中,由於 JWT token 存儲在客戶端,因此JWT token-based 的擴展性優於 session-based 的。

Session 使用 server memory 來存儲用戶數據,這在擴展服務器時給服務器增加了更多負擔,並當在有多位用戶同時間一齊訪問該應用程序會帶來許多不便。


Security 安全性

雖然只要有連線上網就是被惡意攻擊的可能,但在現時 JWT 使用 BASE64編碼,比起session-cookie 更有防護力。

不過在此也要說清楚,敏感或重要的資料,可以的話就不要在網上傳播了。


Cheers!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

5👏

拍拍拍