JWT--study

JWT

1、简介

在这里插入图片描述

2、结构

在这里插入图片描述

头部

在这里插入图片描述


在这里插入图片描述

载荷

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

签证

在这里插入图片描述

应用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

Token 生成

在这里插入图片描述

解析token

在这里插入图片描述

package com.wang.utils;

import io.jsonwebtoken.Jwt;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class JWTUtils {

    // 定义一个密钥
    private static final String SECRET = "af*(*KK";

    /**
     * 编写生成token的方法
     * @param account
     * @return
     */
    public static String generateToken(String account) {
        Map<String, Object> claims = new HashMap<>();
        claims.put("acct", account);
        JwtBuilder builder = Jwts.builder();
        // 签发算法,设置密钥
        builder.signWith(SignatureAlgorithm.HS256, SECRET);
        // body数据,要唯一,自行设置
        builder.addClaims(claims);
        // 设置签发时间 - 当前系统时间
        builder.setIssuedAt(new Date());
        // 设置过期时间
        builder.setExpiration(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24));
        String token = builder.compact();
        return token;
    }

    public static Map<String,Object> parseToken(String token){
        Jwt jwt = Jwts.parser().setSigningKey(SECRET).parse(token);
        Map<String,Object> claims = (Map<String, Object>) jwt.getBody();
        return claims;
    }

    public static void main(String[] args) {
        String s = generateToken("123");
        System.out.println(s);
        System.out.println("====================");
        System.out.println(parseToken(s));
    }
}

解决跨域

在这里插入图片描述

登录接口

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
解析token
在这里插入图片描述
在这里插入图片描述

结合Redis 解决token删除

在这里插入图片描述
如果redis中有数据,就赋值
在这里插入图片描述
如果没有数据就报错
退出登录要在后台清除redis中的信息
在这里插入图片描述

在这里插入图片描述

总结

解决了单点登录和session共享问题:使用jwt+redis

相关推荐

  1. <span style='color:red;'>JWT</span>详解

    JWT详解

    2024-04-05 09:40:02      41 阅读
  2. JWT详解

    2024-04-05 09:40:02       56 阅读
  3. <span style='color:red;'>JWT</span>登录

    JWT登录

    2024-04-05 09:40:02      59 阅读
  4. <span style='color:red;'>JWT</span>原理

    JWT原理

    2024-04-05 09:40:02      36 阅读
  5. <span style='color:red;'>JWT</span>原理

    JWT原理

    2024-04-05 09:40:02      37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-05 09:40:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-05 09:40:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-05 09:40:02       87 阅读
  4. Python语言-面向对象

    2024-04-05 09:40:02       96 阅读

热门阅读

  1. uniapp将图片地址base64格式相互转换

    2024-04-05 09:40:02       31 阅读
  2. 《备忘录模式(极简c++)》

    2024-04-05 09:40:02       38 阅读
  3. Linux命令——用户管理和组管理

    2024-04-05 09:40:02       31 阅读
  4. Spring Boot 启动扩展点深入解析

    2024-04-05 09:40:02       38 阅读
  5. 算法基本概念

    2024-04-05 09:40:02       32 阅读