產生 JWT Token 方法
Contents
平常我們前後端開發會使用 JWT Token,JWT Token 有讀過相關文章就知道它裡面會存一些資訊,相關驗證都會在 JWT 上面,Server 讀取上面資料就知道是哪一個使用者,不需要在做資料庫查詢。這時候你會覺得這樣安全嗎?但其實它背後原理有做簽章,當你串改資料,JWT 驗證是不會過的,相對機密資料就不建議存在上面。
JWT 介紹
網路上一堆好文,這邊就不整理了。
- 是誰在敲打我窗?什麼是 JWT ? | 五倍紅寶石・專業程式教育
這邊擷取幾個重點,推薦還是進去上面看。
JWT 的組成
- header
- payload
- signature/encryption data
……
Registered Claims 包含:
sub:subject 的簡稱,用字串(case-sensitive) 或 URI 表示這個 JWT 所夾帶的唯一識別訊息。
exp:expiration(time) 的簡稱,一個用來表示特定日期和時間的數字,格式為 POSIX 定義的 自紀元以來的秒數,即 UNIX時間。此聲明設置了該 JWT 被視為無效的確切時間。一些實踐可能允許時間存在一定的偏差(考慮此 JWT 在到期日期後的幾分鐘內有效)。
這邊簡單擷取幾個重點,sub
這邊取到資料是唯一值的,可以把這個存在資料庫。exp
是過期時間,通常驗證不過可能也需要注意這個。
產生 JWT Token
最後還是發現JSON Web Tokens - jwt.io這個網站最好用,這個網站是用靜態網站去產生,所以是非常方便。
可以貼上 private key 調整 payload 資料作調整。
其他網站:
Online JWT Builder - Jamie Kurtz
Online JWT Generator