JWT笔记

目录

  • 1.JWT简介
    • 2.JWT作用
    • 3.传统Session
    • 4.JWT的结构
    • 5.JWT的请求流程
  • 6.SpringBoot集成JWT

1.JWT简介

JWT(JSON web token),也就是通过JSON形式作为Web应用中的令牌,用于在各方之间安全地将信息作为JSON对象传输,在数据传输过程中可以完成数据加密、签名等相关处理。

2.JWT作用

  • 授权:用户登录,后续请求包括JWT,从而允许用户访问该令牌允许的路由、服务和资源。
  • 信息交换:JWT是各方之间安全地传输信息的好方法,因为可以对JWT进行签名(例如:使用公钥/私钥)。由于签名是使用标头和有效负载计算的,因此可以验证用户内容。

3.传统Session

我们知道,http协议本身是一种无状态的协议,而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证,那么下一次请求时,用户还要再一次进行用户认证才行,因为根据http协议,我们并不能知道是哪个用户发出的请求,所以为了让我们的应用能识别是哪个用户发出的请求,我们只能在服务器存储一份用户登录的信息,这份登录信息会在响应时传递给浏览器,告诉其保存为cookie,以便下次请求时发送给我们的应用,这样我们的应用就能识别请求来自哪个用户了,这就是传统的基于session认证。

4.JWT的结构

JWT是由一下三段信息构成的:

  • Header头部(包含签名或加密算法的类型)
  • Payload载荷(存放有效信息)
  • Signature(签名/签证)

将这三段信息文本用“.”连接一起就构成完成的JWT字符串,也是就我们需要的Token,如下所示:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0aW1lU3RhbXAiOjE2MzkwNDc1NTMxNjksInVzZXJSb2xlIjoiUk9MRV9BRE1JTiIsInVzZXJJZCI6ImFkbWluIn0.UFQLvaiQ1AThx9Fa4SRqNg-b9HPJ9y1TlgQB4-F3pi0

5.JWT的请求流程

    1. 客户端发起登录请求,传入账号密码;
    1. 服务端使用私钥创建一个Token;
    1. 服务器返回Token给客户端;
    1. 客户端向服务端发送请求,在请求头中该Token;
    1. 服务器验证该Token
  • 6.返回结果。
    在这里插入图片描述

6.SpringBoot集成JWT

<dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.10.3</version>
</dependency>
  • 如何使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/328.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker 镜像调试最佳实践

当你已经构建了一个 Docker 镜像&#xff0c;但运行它的容器启动后立即退出&#xff08;通常是因为服务异常或配置错误&#xff09;&#xff0c;你仍然可以通过以下几种方式进入镜像内部进行调试。 ✅ 最佳实践&#xff1a;如何对一个“启动即退出”的镜像进行命令行调试&#…

TypeScript小技巧使用as const:让类型推断更精准。

文章目录 前言什么是 as const&#xff1f;为什么需要 as const&#xff1f;as const的使用场景1. 保留字面量类型2. 处理元组类型3. 函数调用中的类型匹配 实际应用示例示例 1&#xff1a;配置对象示例 2&#xff1a;枚举替代方案 总结 前言 作为一名前端开发者&#xff0c;在…

LangGraph-agent-天气助手

用于创建agent和多代理工作流 循环&#xff08;有迭代次数&#xff09;、可控、持久 安装langgraph包 conda create --name agent python3.12 conda activate agent pip install -U langgraph pip install langchain-openai设置 windows&#xff08;>结尾&#xff09; s…

十三种通信接口芯片——《器件手册--通信接口芯片》

目录 通信接口芯片 简述 基本功能 常见类型 应用场景 详尽阐述 1 RS485/RS422芯片 1. RS485和RS422标准 2. 芯片功能 3. 典型芯片及特点 4. 应用场景 5. 设计注意事项 6. 选型建议 2 RS232芯片 1. RS232标准 2. 芯片功能 3. 典型芯片及特点 4. 应用场景 5. 设计注意事项 6…

9大开源AI智能体概况

项目GitHub 链接开发组织核心功能应用领域典型应用案例活跃度AutoGPT (176k⭐)链接Significant Gravitas 团队基于 GPT-4 的自主代理&#xff0c;能够自动分解任务并生成多步提示循环执行&#xff0c;支持调用工具&#xff08;如网络搜索、文件操作等&#xff09;。自动化办公、…

kafka吞吐量提升总结

前言 原本自以为阅读了很久kafka的源码&#xff0c;对于kafka的了解已经深入到一定程度了&#xff0c;后面在某大厂的面试中&#xff0c;面试官询问我&#xff0c;如果需要提升kafka的性能&#xff0c;应该怎么做&#xff0c;我发现我能答上来的点非常的少&#xff0c;也暴露了…

OpenHarmony外设驱动使用 (十三),Vibrator

OpenHarmony外设驱动使用 &#xff08;十三&#xff09; Vibrator 概述 功能简介 为了快速开发马达驱动&#xff0c;基于HDF&#xff08;Hardware Driver Foundation&#xff09;驱动框架开发了马达&#xff08;Vibrator&#xff09;驱动模型。马达驱动模型&#xff0c;屏蔽…

【Harmony OS】作业四 布局

目录 一. 单选题&#xff08;共6题&#xff0c;6分&#xff09; 1. (单选题, 1分)关于容器组件 Row 和 Column&#xff0c;下面说法错误的是? 2. (单选题, 1分)下列哪种组合方式可以实现子组件从父子组件单向状态同步? 3. (单选题, 1分)下面哪个组件层次结构是错误的&…

嵌入式学习Day27

进程&#xff1a; 进程是操作系统中的一个基本概念&#xff0c;指的是正在执行的程序实例。每个进程都有独立的内存空间、系统资源和执行状态。操作系统通过进程管理来分配资源、调度任务和确保系统的稳定性。 进程的组成 代码段&#xff1a;存储程序的指令。数据段&#xf…

《数据结构初阶》【八大排序——巅峰决战】

【八大排序——巅峰决战】目录 前言&#xff1a;---------------排序竞赛---------------一、比赛背景&#xff1a;二、赛前须知&#xff1a;三、比赛进行中……头文件Sort.hStack.h 实现文件Sort.cStack.c 测试文件 四、比赛结果&#xff1a;五、颁奖仪式&#xff1a;--------…

超简单 FishSpeech 本地部署

FishSpeech1.5可以说是目前最受欢迎的语音模型了。由于项目需要,在本地进行搭建,并记录下搭建过程,方便后人。 1. 基本硬件环境 CPU:N年前的 Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz, 32G内存GPU:N年前的 NVIDIA GeForce GTX 1080 Ti,11G显存2. 基本软件环境 操作系统…

手搓四人麻将程序

一、麻将牌的表示 在麻将游戏中&#xff0c;总共有一百四十四张牌&#xff0c;这些牌被分为多个类别&#xff0c;每个类别又包含了不同的牌型。具体来说&#xff0c;麻将牌主要包括序数牌、字牌和花牌三大类。序数牌中&#xff0c;包含有万子、条子和筒子&#xff0c;每种花色…