JWT开发

1.添加jjwt依赖包

    <dependency>
      <groupId>io.jsonwebtoken</groupId>
      <artifactId>jjwt</artifactId>
      <version>0.9.1</version>
    </dependency>

2.application.yml配置Jwt相关信息

jwt:
  header: jwt-token
  secret: testSecret
  expired: 30000  #单位毫秒
  queryToken: TOKEN

3.编写JwtToken 配置类

@Data
@Configuration
public class JwtConfig {
    //header名称
    @Value("${jwt.header}")
    private String header;

    //密码
    @Value("${jwt.secret}")
    private String secret;

    //过期时间,单位毫秒
    @Value("${jwt.expired}")
    private Long expired;

    @Value("${jwt.queryToken}")
    private String queryToken;
}

4.编写JwtUtil工具类,是一个很简单的可以使用的类,更多的功能根据需要添加

@Component
public class JwtUtil {
    @Autowired
    private JwtConfig jwtConfig;

    public String createJwt(String subject){
        //指定签名使用的算法,也就是header部分,这个已经在jjwt封装好了
        SignatureAlgorithm signatureAlgorithm=SignatureAlgorithm.HS256;
        JwtBuilder builder= Jwts.builder()

                //签发时间
                .setIssuedAt(new Date(System.currentTimeMillis()))  

                //签发主体
                .setSubject(subject)

                //过期时间
                .setExpiration(new Date(System.currentTimeMillis()+ jwtConfig.getExpired()))

                //使用HS256加密
                .signWith(signatureAlgorithm,jwtConfig.getSecret());
        return  builder.compact();
    }

    public String getSubjectByJwt(String jwt) {

        String subject = Jwts.parser().setSigningKey(jwtConfig.getSecret())
                .parseClaimsJws(jwt).getBody().getSubject();

        return subject;
    }


}

4.编写测试类

@SpringBootTest
@RunWith(SpringRunner.class)
public class AppTest 
{

    @Autowired

    JwtUtil jwtUtil;

    @Test
    public  void testJwt(){
        String jwt=  jwtUtil.createJwt("lyy");
        System.out.println(jwt);
        String subject=jwtUtil.getSubjectByJwt(jwt);
        System.out.println(subject);
    }

}

结果显示:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值