parent
dc970724ce
commit
f3a56c77f3
@ -0,0 +1,57 @@
|
||||
package com.example.flower.unit;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.auth0.jwt.JWT;
|
||||
import io.jsonwebtoken.*;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
||||
public class JWTUtil {
|
||||
private static long time = 1000*60*60*24;
|
||||
private static String signature = "flower";
|
||||
//创建token(示例)
|
||||
public static String createToken(int id,int role){
|
||||
JwtBuilder jwtBuilder = Jwts.builder();
|
||||
String jwtToken = jwtBuilder
|
||||
//header
|
||||
.setHeaderParam("typ","JWT")
|
||||
.setHeaderParam("alg","HS256")
|
||||
//payload
|
||||
.claim("id",id)
|
||||
.claim("role",role)
|
||||
.setSubject("admin-test")
|
||||
.setExpiration(new Date(System.currentTimeMillis()+time))
|
||||
.setId(UUID.randomUUID().toString())
|
||||
//signature
|
||||
.signWith(SignatureAlgorithm.HS256,signature)
|
||||
.compact();
|
||||
return jwtToken;
|
||||
}
|
||||
|
||||
//检查token是否有效
|
||||
public static boolean checkToken(String token){
|
||||
if(token == null){
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
Jwts.parser().setSigningKey(signature).parseClaimsJws(token);
|
||||
}catch (ExpiredJwtException e){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//token认证失败
|
||||
public static void checkTokenFailed(JSONObject jsonObject){
|
||||
jsonObject.put("code",401 );
|
||||
jsonObject.put("msg","token认证异常!" );
|
||||
jsonObject.put("data",null );
|
||||
}
|
||||
|
||||
//解析token,获取body信息
|
||||
public static Claims getBodyByToken(String token){
|
||||
Jws<Claims> claimsJws = Jwts.parser().setSigningKey(signature).parseClaimsJws(token);
|
||||
return claimsJws.getBody();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue