package com.example.demo.util;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* @author 稳
*/
@Component
public class JwtUitls {
/**
* 过期时间60分钟
*/
private static final long EXPIRE_TIME = 60 * 60 * 1000;
/**
* 加密密钥
*/
private static final String KEY = "demaxiya";
/**
* 生成token
*
* @param account 用户名
* @param id 用户id
*/
public String createToken(String account, String id) {
Map<String, Object> header = new HashMap();
header.put("typ", "JWT");
header.put("alg", "HS256");
//setID:用户ID
//setExpiration:token过期时间 当前时间+有效时间
//setSubject:用户名
//setIssuedAt:token创建时间
//signWith:加密方式
JwtBuilder builder = Jwts.builder().setHeader(header)
.setId(id)
.setExpiration(new Date(System.currentTimeMillis() + EXPIRE_TIME))
.setSubject(account)
.setIssuedAt(new Date())
.signWith(SignatureAlgorithm.HS256, KEY);
return builder.compact();
}
//得到token中的account
public String getAccount(String token) {
Claims claims = Jwts.parser().setSigningKey(KEY).parseClaimsJws(token).getBody();
String account = claims.getSubject();
return account;
}
}
Springboot中 通过JWT生成token并得到token中的信息
最新推荐文章于 2023-02-10 15:54:36 发布
该博客介绍了如何使用Java实现JWT(JSON Web Token)的生成和解析。主要涉及设置过期时间、加密密钥、添加JWT头信息以及设置用户ID、用户名等关键信息。通过`JwtBuilder`和`Jwts`类进行操作,并使用`SignatureAlgorithm.HS256`进行签名。
摘要由CSDN通过智能技术生成