springboot实现jwt
jwt用于客户端和服务器进行安全传输的验证,通过url,post或http header发送,体积小,可以包含用户所需要的信息,避免多次查询数据库.
java里使用需要引入一个依赖
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
jwtUtils
package com.cdl.controller.utils;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
public class jwtUtils {
// 7天过期时间
private static long expire = 604800;
// 32位密匙
private static String secret = "abcmdlakxkdieoqlckdielapzlxkedkq";
//生成 token
public static String giveToken(String username){
Date now = new Date();
Date date = new Date(now.getTime() + 1000 * expire);
return Jwts.builder()
.setHeaderParam("type","JWT")
.setSubject(username)
.setIssuedAt(now)
.setExpiration(date)
.signWith(SignatureAlgorithm.HS512,secret)
.compact();
}
// 解析token
public static Claims getClaimsByToken(String token){
return Jwts.parser()
.setSigningKey(secret)
.parseClaimsJws(token)
.getBody();
}
}