Json Web Token身份認證

2021-08-27 23:17:36 字數 1346 閱讀 9040

使用者身份認證一般有5種方式

因為前後端分離的緣故,現在的後台多數只提供資料部分,一般使用json格式,所以json web token是比較流行的認證方式。

jwt的認證方式相比其他的認證方式有一下優點:

jwt包含3個部分

header

123

4

jwt的頭部是固定的,alg是演算法的意思表示該jwt使用的是何種演算法加密。typ字段值是固定的jwtpayload

123

45

負載部分就是具體的認證資訊,通過修改這部分的內容來控制認證資訊如使用者許可權等。除了一些保留字段exp(過期時間)、audiss等外,使用方法跟普通json一樣。

signature

簽名,也就是金鑰,用來保證密文的安全強度

以上3部分都經過base64url處理後用.分隔再使用hmac sha256rsa加密為一段字串

123

4

hmacsha256(

base64urlencode(header) + "." +

base64urlencode(payload),

secret)

具體的使用在jwt.io上有演示

客戶端post使用者名稱和密碼到服務端,若對安全要求較高可以是加密後的使用者名稱或密碼,服務端把拿到的使用者名稱和密碼與資料庫中的對比,若相同則按照上面的流程生成jwt,然後返回客戶端。在此之後客戶端的所有請求,可以在authorization http頭或post資料中附帶得到的jwt。服務端驗證jwt並解析出payload部分,以此來判斷使用者的許可權。

jwt的使用方法很簡單,就拿node.js的包node-jsonwebtoken來說加密和驗證就兩個函式jwt.signjwt.verify並且jwt.io中提供了很多語言的jwt包。

Json Web Token身份認證

使用者身份認證一般有5種方式 因為前後端分離的緣故,現在的後台多數只提供資料部分,一般使用json格式,所以json web token是比較流行的認證方式。jwt的認證方式相比其他的認證方式有一下優點 jwt包含3個部分 header 123 4 jwt的頭部是固定的,alg是演算法的意思表示該j...

c WebApi之身份驗證 Basic基礎認證

為什麼需要身份認證 身份認證是為了提高介面訪問的安全性,如果沒有身份驗證,那麼任何只要知道伺服器的url,就可以隨意訪問伺服器,從而訪問或者運算元據庫,這會是很恐怖的事。什麼是basic基礎認證 basic基礎認證是一種簡單的使用者名稱 密碼驗證過程,它的主要原理是加密使用者資訊,生成票據,每次需要...

JSON Web Token入門學習

學習記錄 看了這篇帖子,有時間再來整理 阮一峰的網路日誌 實際上的jwt內容類似下圖 它是乙個很長的字串,中間用點 分隔成三個部分。注意,jwt 內部是沒有換行的,這裡只是為了便於展示,將它寫成了幾行。寫成一行,應該如下 header.payload.signature 客戶端收到伺服器返回的 jw...