1. 程式人生 > 其它 >java使用 jwt 生成token進行登入驗證

java使用 jwt 生成token進行登入驗證

技術標籤:javajwtredisvuejava

最近在做一個練手的專案,這裡記錄一下使用的知識點

Json web token (JWT), 是為了在網路應用環境間傳遞宣告而執行的一種基於JSON的開放標準((RFC 7519).該token被設計為緊湊且安全的,特別適用於分散式站點的單點登入(SSO)場景。JWT的宣告一般被用來在身份提供者和服務提供者間傳遞被認證的使用者身份資訊,以便於從資源伺服器獲取資源,也可以增加一些額外的其它業務邏輯所必須的宣告資訊,該token也可直接被用於認證,也可被加密。

首先在java專案中使用,需要引入對應的依賴

這裡我使用的是jjwt,因為原jwt相比較而言取值不太方便

還有我使用的是gradle專案,這裡不列舉maven方式的引入了

 compile group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1'

首先需要建立一個jwt的工具類

在設定jwt的時效性時,我這裡使用的是hutool的日期時間工具類,利用時間偏移設定時效。

設定jwt的還需要一個金鑰,正好之前做RSA非對稱加密的時候,我已經將私鑰存入了快取中,所以這裡我直接利用RSA的私鑰好了。(這種方式確定的jwt金鑰,是不固定的,如果想固定的金鑰,可以寫在applicatiion.yml檔案中。不過這個不影響,因為我在使用redis儲存RSA私鑰的時候,並未設定該私鑰在redis中時效性,所以理論上