java-jwt 使用小結(jié)
java-jwt 是一個(gè)用于在 Java 應(yīng)用程序中創(chuàng)建和驗(yàn)證 JSON Web Tokens (JWT) 的庫(kù)。它由 Auth0 提供,功能強(qiáng)大且易于使用,適合處理基于 JWT 的身份驗(yàn)證和授權(quán)。
以下是一些關(guān)于 java-jwt 的關(guān)鍵點(diǎn)和示例:
安裝
通過(guò) Maven 或 Gradle 添加依賴(lài):
Maven
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>4.4.0</version> <!-- 請(qǐng)根據(jù)需要選擇最新版本 -->
</dependency>
Gradle
implementation 'com.auth0:java-jwt:4.4.0' // 請(qǐng)根據(jù)需要選擇最新版本
生成 JWT 示例
以下代碼展示了如何使用 java-jwt 生成一個(gè)簽名的 JWT:
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
public class JwtExample {
public static void main(String[] args) {
Algorithm algorithm = Algorithm.HMAC256("your-secret-key"); // 使用 HMAC256 算法和密鑰
String token = JWT.create()
.withIssuer("auth0") // 設(shè)置發(fā)行者
.withSubject("user123") // 設(shè)置主題(用戶(hù)標(biāo)識(shí))
.withClaim("role", "admin") // 自定義聲明
.sign(algorithm); // 簽名
System.out.println("Generated Token: " + token);
}
}
驗(yàn)證 JWT 示例
驗(yàn)證 JWT 時(shí),需要確保使用與生成時(shí)相同的算法和密鑰:
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.JWTVerificationException;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.auth0.jwt.interfaces.JWTVerifier;
public class JwtVerifyExample {
public static void main(String[] args) {
String token = "your-jwt-token"; // 替換為實(shí)際的 JWT
try {
Algorithm algorithm = Algorithm.HMAC256("your-secret-key");
JWTVerifier verifier = JWT.require(algorithm)
.withIssuer("auth0") // 驗(yàn)證發(fā)行者
.build();
DecodedJWT jwt = verifier.verify(token); // 驗(yàn)證并解碼
System.out.println("Token is valid!");
System.out.println("Subject: " + jwt.getSubject());
System.out.println("Role: " + jwt.getClaim("role").asString());
} catch (JWTVerificationException exception) {
System.err.println("Invalid Token: " + exception.getMessage());
}
}
}
常見(jiàn)功能
設(shè)置過(guò)期時(shí)間:
import java.util.Date; String token = JWT.create() .withExpiresAt(new Date(System.currentTimeMillis() + 3600 * 1000)) // 1小時(shí)后過(guò)期 .sign(algorithm);解析 JWT:
DecodedJWT decodedJWT = JWT.decode(token); System.out.println("Issuer: " + decodedJWT.getIssuer()); System.out.println("Subject: " + decodedJWT.getSubject());支持多種算法: 除了 HMAC256,還支持 RSA、ECDSA 等算法。
注意事項(xiàng)
- 安全性:請(qǐng)妥善保管密鑰,避免泄露。
- 時(shí)鐘同步:驗(yàn)證時(shí)可能涉及時(shí)間戳,請(qǐng)確保服務(wù)器時(shí)間同步。
- 依賴(lài)更新:定期檢查
java-jwt的版本更新以獲取最新功能和安全修復(fù)。
到此這篇關(guān)于java-jwt 使用小結(jié)的文章就介紹到這了,更多相關(guān)java-jwt 使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java Jwt庫(kù)的簡(jiǎn)介及使用詳解
- 深入了解java-jwt生成與校驗(yàn)
- Java中的JWT使用詳解
- java使用JWT的方法
- Java如何簡(jiǎn)單快速入門(mén)JWT(token生成與驗(yàn)證)
- 基于Java驗(yàn)證jwt token代碼實(shí)例
- Java如何使用JWT實(shí)現(xiàn)Token認(rèn)證機(jī)制
- 在Java中使用Jwt的示例代碼
- Java?JWT實(shí)現(xiàn)跨域身份驗(yàn)證方法詳解
- Java中JWT的使用的詳細(xì)教程
- 使用Java生成JWT令牌的示例代碼
- Java jwt使用公鑰字符串驗(yàn)證解析token鎖方法詳解
相關(guān)文章
使用chatgpt實(shí)現(xiàn)微信聊天小程序的代碼示例
這篇文章主要介紹了使用chatgpt實(shí)現(xiàn)微信聊天小程序(秒回復(fù)),文中有詳細(xì)的代碼示例,對(duì)大家了解chatgpt聊天有一定的幫助,感興趣的同學(xué)可以參考閱讀2023-05-05
logback ThresholdFilter臨界值日志過(guò)濾器源碼解讀
這篇文章主要為大家介紹了logback ThresholdFilter臨界值日志過(guò)濾器源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
SPFA算法的實(shí)現(xiàn)原理及其應(yīng)用詳解
SPFA算法,全稱(chēng)為Shortest?Path?Faster?Algorithm,是求解單源最短路徑問(wèn)題的一種常用算法,本文就來(lái)聊聊它的實(shí)現(xiàn)原理與簡(jiǎn)單應(yīng)用吧2023-05-05
SpringBoot數(shù)據(jù)庫(kù)初始化datasource配置方式
這篇文章主要為大家介紹了SpringBoot數(shù)據(jù)庫(kù)初始化datasource配置方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
spring?aop?pointcut?添加多個(gè)execution方式
這篇文章主要介紹了spring?aop?pointcut?添加多個(gè)execution方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
SpringBoot設(shè)置HTTP響應(yīng)狀態(tài)碼過(guò)程(HTTP Status Code)
本文介紹了HTTP響應(yīng)狀態(tài)碼的分類(lèi)及其在SpringBoot中的使用示例,狀態(tài)碼包括信息、成功、重定向、客戶(hù)端錯(cuò)誤和服務(wù)器錯(cuò)誤,常用的幾種狀態(tài)碼有200(請(qǐng)求成功)、400(客戶(hù)端錯(cuò)誤)、404(資源未找到)和500(服務(wù)器內(nèi)部錯(cuò)誤)2026-01-01
詳解SpringBoot中關(guān)于%2e的Trick
這篇文章主要介紹了SpringBoot中關(guān)于%2e的Trick,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
Spring中Transactional注解使用的心得(推薦)
這篇文章主要介紹了Spring中Transactional注解使用的心得,事務(wù)是用來(lái)控制數(shù)據(jù)的ACID特性的,用于保證數(shù)據(jù)的正確性和完整性,需要的朋友可以參考下2022-10-10

