JWT使用-生成token,解析token代码实现
<!--jwt依赖
cookie不支持跨域:请求服务地址 跟 后台服务地址 不一样 协议 等
-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
//jwt工具类
public class JwtUtils {
@Value("${tanhua.secret}")
private String secret;
/**
* 生成JWT
*
* @return
*/
public String createJWT(String phone,Long userId) {
Map<String, Object> claims = new HashMap<String, Object>();
claims.put("mobile", phone);
claims.put("id", userId);
long nowMillis = System.currentTimeMillis();
Date now = new Date(nowMillis);
JwtBuilder builder = Jwts.builder()
.setClaims(claims)
.setIssuedAt(now)//过期时间 立马过期
.signWith(SignatureAlgorithm.HS256, secret);
return builder.compact();
}
/**
* 解析token
*
* @param jwt
* @return
*/
public Map<String,Object> parseJWT(String jwt){
// 通过token解析数据
Map<String, Object> body = Jwts.parser()
.setSigningKey(secret)
.parseClaimsJws(jwt)
.getBody();
return body; //{mobile=12345789, id=2}
}
}