JWT 创建和解析

25 篇文章 0 订阅

1、创建、解析demo
public class JwtTest {
public static void createJwt(){
long l = System.currentTimeMillis();
long exp = l+1000*60;//过期时间1分钟
JwtBuilder jwtBuilder = Jwts.builder().setId(“1”)
.setSubject(“张三”)
.setIssuedAt(new Date())
.setExpiration(new Date(exp))
.signWith(SignatureAlgorithm.HS256, “itcast”)
.claim(“roles”,“admin”)
.claim(“logo”,“logo.png”);
System.out.println(jwtBuilder.compact());
}
public static void parseJwt(){
String token = “eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxIiwic3ViIjoi5byg5LiJIiwiaWF0IjoxNTkxNjg1NzI0LCJleHAiOjE1OTE2ODU3ODQsInJvbGVzIjoiYWRtaW4iLCJsb2dvIjoibG9nby5wbmcifQ.r5LnHcEhLMr39HewNDzfDkVA0z9GjtAnggtKFT733BI”;
Claims itcast = Jwts.parser().setSigningKey(“itcast”).parseClaimsJws(token).getBody();
System.out.println(itcast.getId());
System.out.println(itcast.getSubject());
System.out.println(itcast.getIssuedAt());
System.out.println(itcast.get(“roles”));
System.out.println(itcast.get(“logo”));
System.out.println(itcast.get(“logo11”));

    System.out.println("kk");
}

public static void main(String[] args) {
    //createJwt();
    parseJwt();
}

}

2封装工具类
@Data
@ConfigurationProperties(“jwt.config”)
public class JwtUtils {
//签名私钥
private String key;
//签名的失效时间
private Long ttl;
//设置token
public static void main(String[] args) {
JwtBuilder jwtBuilder = Jwts.builder().setId(“1234”).setSubject(“闪到”).setIssuedAt(new Date()).signWith(SignatureAlgorithm.HS256, “itcast”);
String compact = jwtBuilder.compact();
System.out.println(compact);

}
/**
 *  id 用户id
 *  subjecd用户名字
 * @return
 */
public String createJwt(String id, String name, Map<String ,Object> map){
    long now = System.currentTimeMillis();
    long exp = now+ttl;
    JwtBuilder jwtBuilder = Jwts.builder().setId(id).
            setSubject(name).
            setIssuedAt(new Date()).
            setExpiration(new Date(exp)).
            signWith(SignatureAlgorithm.HS256, key);
    for (Map.Entry<String, Object> entry : map.entrySet()) {
        jwtBuilder.claim(entry.getKey(),entry.getValue());
    }
    String compact = jwtBuilder.compact();
    return compact;


}

//解析token获取
public Claims parseJWT(String token){
    Claims claims = Jwts.parser().setSigningKey(key).parseClaimsJws(token).getBody();
    return claims;
}

}
在application.properties中配置
jwt.config.key=saas-ihrm
jwt.config.ttl=360000

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值