Java使用JWT

JWT

一、简介

1、JWT

JWT为 Json Web Token,是一种令牌生成算法。使用JWT能够保证Token的安全性,且能够进行Token时效性的检验。

2、JWT结构

JWT共由三部分组成,分别是数据头(Header)、Payload(数据体)、验证签名(Verify Signature)组成。其中,Header中的内容为加密信息以及Token的类别,Payload为用户数据、Verify Signature为校验数据。
请添加图片描述

二、依赖

JWT需要两个依赖java-jwt、jjwt

<dependency>
    <groupId>com.auth0</groupId>
    <artifactId>java-jwt</artifactId>
    <version>3.8.2</version>
</dependency>
<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.9.1</version>
</dependency>

三、Token的生成与解析

1、生成token字符串

import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;
import java.util.Hashtable;
import java.util.Map;

@RestController
@RequestMapping("/jwt")
@CrossOrigin
public class JWTController {
    @RequestMapping("/token")
    public String getToken(){
        User user=new User(1,"张三","123",new Date());
        String userJson = JSON.toJSONString(user);//序列化user
        JwtBuilder jwtBuilder = Jwts.builder(