需要做一个基于hash的token jfinal怎么实现呢


急,谁有token生成的工具类,采用给红包 谢谢大家

评论区

prelove

2018-04-16 15:11

/**
* @param subject 当前token对应的User标识,放header
* @param audience 接收者,放header
* @param TTLMillis 过期时间
* @param data 当前User相关情报信息,放body
* @return jwt字符串
*/
private static String createJWT(String subject, String audience,
long TTLMillis, Map data) {

SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;

long nowMillis = System.currentTimeMillis();
Date now = new Date(nowMillis);

Map header = new HashMap();
header.put("IssuedAt", now); // 创建时间
header.put("Subject", subject); // 主题:用户标识
header.put("Issuer", issuer); // 发布者
header.put("Audience", audience); // 接收者
header.put("typ", "JWT");

// 添加构成JWT的参数
JwtBuilder builder = Jwts.builder()
.setHeader(header)
.setClaims(data)
.signWith(signatureAlgorithm, key.getBytes());
// 添加Token过期时间
if (TTLMillis >= 0) { // 过期时间
long expMillis = nowMillis + TTLMillis;
Date exp = new Date(expMillis); // 现在是什么时间
builder.setExpiration(exp).setNotBefore(now); // 系统时间之前的token都是不可以被承认的
}
// 生成JWT
return builder.compact();
}

hahahahhaha

2018-04-16 15:54

@prelove JwtBuilder builder = Jwts.builder() 报错

prelove

2018-04-24 15:12

@hahahahhaha 要引用jjwt的包,


io.jsonwebtoken
jjwt
0.4

热门分享

扫码入社