JWT 實作範例,以 node.js 為例

Topal 近日發佈一篇以 node.js express 框架實作 JWT 的文章,好奇 JWT 如何運作的人可以看一下:

How to Use JWT and Node.js for Better App Security

談到認證(authentication), 現在通常會談到 2 種做法:

  1. Session Id
  2. JWT (JSON Web Token)

如果你只是個小小應用,其實傳統的 Session Id 就已經相當夠用,除了各大框架都內建之外,其資安防護手段也相當成熟,框架都會幫你做到好,原理就是後端伺服器透過檢查瀏覽器或 APP 所傳送的 Cookies 裡的 Session Id 就能夠做到基本的認證防護,不過代價是 Session 在 CORS 的架構下窒礙難行。 如果你的系統已經大到需要跨網域溝通(CORS)時,也許採用 JWT 為主的認證方式,反而會更為輕鬆, JWT 可以想像是由後端伺服器發行的 access token, 通常期效不會很長,任何與伺服器的溝通都要記得使用 JWT, 後端伺服器通常會在框架的 middleware 層進行驗證,因此如何驗證 JWT 並保護其不被盜用也是相當重要的資安議題。

採用 JWT 還有個好處,可以將一些「非機敏」的資料存在 JWT, 如此一來前端就不用什麼資料都得問後端,例如暱稱、頭像就能夠存在 JWT 之中,節省一些網路請求。

FOLLOW US

對抗久坐職業傷害

研究指出每天增加 2 小時坐著的時間,會增加大腸癌、心臟疾病、肺癌的風險,也造成肩頸、腰背疼痛等常見問題。

然而對抗這些問題,卻只需要工作時定期休息跟伸展身體即可!

你想輕鬆改變現狀嗎?試試看我們的 PomodoRoll 番茄鐘吧! PomodoRoll 番茄鐘會根據你所設定的專注時間,定期建議你 1 項辦公族適用的伸展運動,幫助你打敗久坐所帶來的傷害!

贊助我們的創作

看完這篇文章了嗎? 休息一下,喝杯咖啡吧!

如果你覺得 MyApollo 有讓你獲得實用的資訊,希望能看到更多的技術分享,邀請你贊助我們一杯咖啡,讓我們有更多的動力與精力繼續提供高品質的文章,感謝你的支持!