1、增加maven依賴
<!--JWT依賴-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.7.0</version>
</dependency>
2、添加JWT工具類
package com.cm.weixin.pay.utils;
import com.cm.weixin.pay.domain.User;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
/**
* jwt工具類
*/
public class JwtUtils {
public static final String SUBJECT ="cm";
public static final long EXPIRE = 1000*60*60*24*7;//過期時間是一周
public static final String APPSECRET ="cm168";//秘鑰
/**
* 生成jwt 加密方法
* @param user
* @return
*/
public static String geneJsonWebToken(User user){
if(user==null || user.getId()==null || user.getName()==null || user.getHeadImg()==null){
return null;
}
String token=
Jwts.builder().setSubject(SUBJECT)
.claim("id",user.getId())
.claim("name",user.getName())
.claim("img",user.getHeadImg())
.setIssuedAt(new Date())
.setExpiration(new Date(System.currentTimeMillis()+EXPIRE))
.signWith(SignatureAlgorithm.HS256,APPSECRET).compact();
return token;
}
/**
* 校驗token
* @param token
* @return
*/
public static Claims checkJwt(String token){
try {
final Claims claims=Jwts.parser().setSigningKey(APPSECRET).parseClaimsJws(token).getBody();
return claims;
}catch (Exception e){
}
return null;
}
}
3、測試調用用例(User實體類自己定義)
package com.cm.weixin.pay;
import com.cm.weixin.pay.domain.User;
import com.cm.weixin.pay.utils.JwtUtils;
import io.jsonwebtoken.Claims;
import org.junit.Test;
import static com.cm.weixin.pay.utils.JwtUtils.checkJwt;
public class CommonTest {
@Test
public void testGeneJwt(){
User user = new User();
user.setId(9999);
user.setName("cm");
user.setHeadImg("java程序猴");
String token = JwtUtils.geneJsonWebToken(user);
System.out.println(token);
Claims claims=JwtUtils.checkJwt(token);
if(claims !=null){
String name = (String) claims.get("name");
System.out.println(name);
}
}
}