应用JWT进行token的生成


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);
}

}
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM