JJWT - 2分鐘快速學會實現前後端分離身份驗證
阿新 • • 發佈:2020-11-22
- 匯入jar包
<dependencies>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
</dependencies>
- 編寫工具類
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import java.util.Date; public class JwtUtil { private final static String key = "!@#$%^&*IUYTJ$^DSADSsa2132ADSASDA#^%$^$%^$&DYsaFGGS#@$%$#^"; public static String createToken() { return Jwts.builder() .setIssuedAt(new Date())//設定建立時間 .claim("username", "張三")//設定私有欄位 .setExpiration(new Date(System.currentTimeMillis() + 1000 * 60*15))//設定過期時間15分鐘 .signWith(SignatureAlgorithm.HS512, key)//加密 .compact();//打包 } public static boolean verify(String token) { return getTokenClaims(token) != null; } public static Claims getTokenClaims(String token) { try { return Jwts.parser().setSigningKey(key).parseClaimsJws(token).getBody(); } catch (Exception e) { return null; } } public static void main(String[] args) { String token = createToken(); System.out.println(token); System.out.println(verify(token)); System.out.println(getTokenClaims(token).get("username")); } }