介紹 JSON Web Token (JWT)
學習 JWT 基礎知識及如何使用它 JSON Web Token 是一種用於創建應用程式的訪問令牌的標準。 它的運作方式是,伺服器生成一個令牌,用於驗證使用者身份,並將其發送給客戶端。 客戶端將在每個後續請求中將令牌發送回伺服器,因此伺服器知道該請求來自特定身份。 這種架構在現代 Web 應用程序中非常有效,在使用者驗證之後,我們會對 REST 或 GraphQL API 執行API請求。 誰在使用 JWT 呢?以 Google 為例,如果你使用 Google APIs,你會使用 JWT。 JWT 是被加密簽名的(但不會被加密,因此在將用戶數據存儲在 JWT 中時,使用 HTTPS 是必須的),所以當我們收到它時,我們可以確信它的可信度,沒有中間人可以截取並修改它,或者無效化它所保存的數據。 儘管如此,JWT 經常因過度使用而受到批評,尤其是在可以使用更少問題的解決方案時使用它們。 你需要對該主題形成自己的觀點。我並不主張某種技術優於其他,只是展示你在手邊擁有的所有機會和工具。 它們有什麼用途?主要用於 API 認證和服務器到服務器的授權。 JWT 令牌如何生成? 使用 Node.js 你可以通過以下代碼生成令牌的第一部分: const header = { "alg": "HS256", "typ": "JWT" } const encodedHeader = Buffer.from(JSON.stringify(header)).toString('base64') 我們設定 HMAC SHA256 作為簽名算法(JWT 支持多種算法),然後我們從這個 JSON 編碼對象創建一個緩存,並且使用 base64 編碼它。 部分的結果是 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9。 接下來我們添加 payload,我們可以使用任意類型的數據自定義它。有一些預留的鍵,包括 iss 和 exp,它們標識令牌的發行者和過期時間。...