提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
工具
package com.appmanager.utils;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
import java.util.HashMap;
/**
* @program: Jinfang_appmanage
* @description: TOKEN生成
* @author: Gjm
* @create: 2020-09-25 14:37
**/
public class JwtToken {
/**
* 用户名称
*/
private static final String USERNAME = Claims.SUBJECT;
/**
* 创建时间
*/
private static final String CREATED = "created";
/**
* 权限列表
*/
private static final String AUTHORITIES = "authorities";
/**
* 密钥
*/
private static final String SECRET = "zheJingJinFangSchool";
private static final String ISSUER = "Jinfang";
/**
* 有效期12小时
*/
private static final long EXPIRE_TIME = 6 * 60 * 60 * 1000;
/**
* 角色
*/
private static final String ROLE_CLAIMS = "role";
/**
* 生成token
*
* @param userId
* @param role
* @return token
*/
public static String createToken(String userId, String role) {
HashMap<String, Object> claims = new HashMap<>();
claims.put(ROLE_CLAIMS, role);
return Jwts.builder()
.signWith(SignatureAlgorithm.HS512, SECRET)
//设置角色名
.setClaims(claims)
//设置发证人
.setIssuer(ISSUER)
.setSubject(userId)
.setIssuedAt(new Date())
.setExpiration(new Date(System.currentTimeMillis() + EXPIRE_TIME))
.compact();
}
}
使用
String token = JwtToken.createToken(userInfo.getUserId().toString(), "jinfang");