SpringBoot登录认证--衔接SpringBoot案例通关版

文章目录

  • 登录认证
  • 登录校验-概述
    • 登录校验
  • 会话技术
    • 什么是会话呢?
    • cookie
  • Session
  • 令牌技术
  • 登录认证-登录校验-JWT令牌-介绍
    • JWT


SpringBoot案例通关版,上接这篇

登录认证

在这里插入图片描述

先讲解基本的登录功能

登录功能本质就是查询操作

那么查询完毕后返回一个Emp对象

如果Emp对象不为空,那么就说明查询出来数据,然后
就直接登录成功

登录校验-概述

在这里插入图片描述

登录校验

在这里插入图片描述

在这里插入图片描述
使用会话技术
在这里插入图片描述
在这里插入图片描述

会话技术

在这里插入图片描述

在这里插入图片描述
一次会话可以保存多次请求与响应

在这里插入图片描述
http请求是无状态的,每一次请求都不知道上一次的请求响应

在这里插入图片描述
客户端就是浏览器,cookie是存储在客户端的
session是存储在服务端的
令牌技术

什么是会话呢?

会话是浏览器于服务器建立连接,然后就建立了一次会话,
会话建立第一次浏览器于服务器发起请求,那么会话就建立了

浏览器第一次访问服务器会话就建立了

一次会话保存多次请求与响应

任一关闭那么会话就关闭了

会话跟踪的三种方案
cookie
session
令牌

cookie

首先优点是 http协议中支持的技术
但是在app中不能使用

而且cookie是可以被禁用的

cookie是不能跨域的

Session

session底层是基于cookie的

服务器给浏览器响应的时候会自动在请求头里面加一个数据
sey-cookie

jessionid=1

根据JessionId找到session

公司里面的服务器都是集群,项目是部署在多个服务器里面

所以请求发送的时候都是先到达负载均衡的服务器
然后才到达部署项目服务器里面
然后根据jessionID拿到session

cookie和session都是传统的会话解决方案

 cookie里面存储的是sessionidid的名字是固定的jessionid 每次请求都会把jessionid带到服务器然后再根据jessionid带到服务端

找到session是服务器自动做的事情

优势 存储在服务器anq
但是在集群的环境下不能直接使用session

令牌技术

令牌就是字符串

令牌 支持pc端 支持移动端

解决集群环境下的认证问题
减轻客户端存储压力

令牌是存储在客户端浏览器当中的

后端生成令牌
并进行检验令牌

在服务端要校验令牌是否有效性

在这里插入图片描述

登录认证-登录校验-JWT令牌-介绍

JWT

在这里插入图片描述

jwt是base64编码
在这里插入图片描述
这是进行的编码操作
既然可以编码那么就可以去解码

第三部分签名

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

登录成功后生成令牌

然后每次请求去校验令牌

首先要引入依赖

然后直接调用工具类jwts

在这里插入图片描述

在这里插入图片描述

进行jwt

首先jwt的生成使用
jwts.builder
.setClaims

设置载荷数据

里面防止map数据

String jwt = Jwts.builder()
.setClaims(dataMap)
.signWith(SignatureAlgorithm.HS256, "ceshi1")
.setExpiration(new Date(System.currentTimeMillis() + 60 * 60 * 1000))
.compact();

首先根据Jwts.builder()先设置calims
然后设置签名,要加密的格式与秘钥

最后设计过期时间

也就是jwt的三要素都是封装进去

解析是
使用Jwts.parse

Claims claims = Jwts.parser()
.setSigningKey("ceshi")
.parseClaimsJws("eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MTAwLCJleHAiOjE3MTc0MzI4MTQsInVzZXJuYW1lIjoi6LW15pWPIn0.lHlZW6uU9HhSRqB9jMOqmN85MFCTuQH5yDt6091ZKfI")
.getBody();

这里只需要传入秘钥就可以使用
然后再传入jwt的字符串
也就是token那么就可以直接解析成功

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】详解堆的基本结构及其实现

文章目录 前言1.堆的相关概念1.1堆的概念1.2堆的分类1.2.1小根堆1.2.2大根堆 1.3堆的特点堆的实用场景 2.堆的实现2.1初始化2.2插入2.3堆的向上调整2.4删除2.5堆的向下调整2.6判空2.7获取堆顶元素2.8销毁 3.堆排序3.1实现3.2堆排序的时间复杂度问题 前言 在上一篇文章中&#…

TMS320F280049 ECAP模块--总览(0)

ECAP 特性: 4个32bit的事件时间戳寄存器; 4个连续时间戳捕获事件的边沿极性可选上升沿、下降沿 4个事件中每个都能触发中断 4个事件都能做单词触发 可以连续捕获4个事件 绝对的捕获时间戳 差异模式捕获 不使用捕获模式时,可以配置输出…

Python 图书馆管理系统 有GUI界面 【含Python源码 MX_031期】

使用python3,PyQt5,Sqlite3数据库搭建 主要功能: 用户注册、登录、修改密码、用户管理存储图书信息、采购增加和淘汰删除功能、租借功能实现图书采购、淘汰、租借功能。实现查询图书信息、采购和淘汰、库存、和租借情况实现统计图书的采购、…

JavaScript 基础 - 对象

对象 对象是一种无序的数据集合&#xff0c;可以详细的描述描述某个事物。 注意数组是有序的数据集合。它由属性和方法两部分构成。 语法 声明一个对象类型的变量与之前声明一个数值或字符串类型的变量没有本质上的区别。 <script>let 对象名 {属性名&#xff1a;属性值…

accelerate笔记:实验跟踪

Accelerate支持七种集成的跟踪器&#xff1a; TensorBoardWandBCometMLAimMLFlowClearMLDVCLive要使用这些跟踪器&#xff0c;可以通过在 Accelerator 类的 log_with 参数中传入所选类型来实现 from accelerate import Accelerator from accelerate.utils import LoggerTypeac…

高通开发系列 - ubuntu中的docker安装debian镜像

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 返回:专栏总目录 目录 概述当前状态Ubuntu中安装dockerDebian镜像Debian容器中操作更改Debian源安装应用程序

28 _ WebComponent:像搭积木一样构建Web应用

在上一篇文章中我们从技术演变的角度介绍了PWA&#xff0c;这是一套集合了多种技术的理念&#xff0c;让浏览器渐进式适应设备端。今天我们要站在开发者和项目角度来聊聊WebComponent&#xff0c;同样它也是一套技术的组合&#xff0c;能提供给开发者组件化开发的能力。 那什么…

python 各种画图(2D 3D)-1 _matplotlib 官方网站笔记

背景 需利用python进行3D可视化处理&#xff0c;用于分析python得到的数据的正确性。 知识学习 python高阶3D绘图---pyvista模块&#xff0c;mayavi模块&#xff0c;pyopengl模块&#xff0c;MoviePy模块基础使用-CSDN博客 python用于3D绘图的模块比较多&#xff0c;pyvist…

目标2亿欧元!四年两次募资,全球最早专注于量子投资的Quantonation再次加码

Quantonation Ventures 是全球第一家专注于深度物理和量子技术的早期风险投资公司。4月10日&#xff0c;该公司宣布其第二只专门用于量子技术的早期基金 Quantonation II 首次募资完成&#xff0c;目前已募资 7000 万欧元&#xff0c;而目标为 2 亿欧元。 首次募资就募到了将…

《QT从基础到进阶·四十一》无法解析的外部符号及生成事件加入QT打包命令报错问题

其他无法解析的外部符号&#xff1a; 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl ML_AddinManger::metaObject(void)const "… 无法解析的外部符号 “public: virtual void * __cdecl ML_AddinManger::qt_metacast(char const *)” (?…

toefl listening_托福听力

x.1 课程介绍 x.1.1 课程介绍 考试介绍 注意事项如下&#xff0c; x.1.2 分数设定和方法论 x.2.1 细节题解法 x.2.2 对话主旨题解法 听力对话不要扣分&#xff1b; 内容主旨题&#xff0c;以what开头&#xff1b; 目的主旨题&#xff0c;以why开头&#xff1b; 目的主旨题…

SpringCloud中注册中心Nacos的下载与使用步骤

1.前言 Nacos&#xff08;Dynamic Naming and Configuration Service&#xff09;是阿里巴巴开源的一款服务发现和配置管理工具。它可以帮助用户自动化地进行服务注册、发现和配置管理&#xff0c;是面向微服务架构的一个重要组成部分。 2.下载 链接&#xff1a;https://pan.b…

奶茶店、女装店、餐饮店是高危创业方向,原因如下:

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 现在的俊男靓女们&#xff0c;心中都有一个执念&#xff1a; (1)想证明自己了&#xff0c;开个奶茶去…… (2)想多赚点钱了&#xff0c;加盟餐饮店去…… (3)工作不顺心了&#xff0c;搞个女装店去…… 但凡抱着…

回溯--字母迷宫

1.题目描述 字母迷宫游戏初始界面记作 m x n 二维字符串数组 grid&#xff0c;请判断玩家是否能在 grid 中找到目标单词 target。 注意&#xff1a;寻找单词时 必须 按照字母顺序&#xff0c;通过水平或垂直方向相邻的单元格内的字母构成&#xff0c;同时&#xff0c;同一个单…

Windows系统下DOS命令

Windows系统下DOS命令 1. 与文件操作相关1.1 mkdir&#xff0c;md命令1.2 rmdir、rd命令1.3 dir命令1.4 start命令1.5 echo命令1.6 type命令1.7 copy命令1.8 move命令1.9 copy和move的区别1.10 del命令1.11 rename命令1.12 attrib命令1.13 fsutil命令1.14 assoc命令 2. 与网络相…

数据持久化第六课-ASP.NET运行机制

数据持久化第六课-ASP.NET运行机制 一.预习笔记 1.动态网页的工作机制通常分为以下几个阶段&#xff1a; 1&#xff09;使用动态Web开发技术编写Web应用程序&#xff0c;并部署到Web服务器。 2&#xff09;客户端通过在浏览器中输入地址&#xff0c;请求动态页面。 3&#…

机器学习之数学基础(六)~时间复杂度和空间复杂度

目录 算法背景 background 1. 时间复杂度 Time Complexity 1.1 时间复杂度分类 1.1.1 O(1) 常数阶 1.1.2 O(n) 线性阶 1.1.3 O(n^2) 平方阶 1.1.4 O(logn) 对数阶 1.1.5 O(nlogn) 线性对数阶 1.1.6 O(2^n) 指数阶 1.1.7 O(n!) 阶乘阶 1.1.8 时间复杂度分类 1.2 时…

03-07Java自动化之JAVA基础之循环

JAVA基础之循环 一、for循环 1.1for循环的含义 for&#xff08;初始化语句;条件判断;条件控制或–&#xff09;{ ​ //代码语句 } 1、首先执行初始话语句&#xff0c;给变量一个起始的值 2、条件判断进行判断&#xff0c;为true&#xff0c;执行循环体中的代码语句 ​ …

3DGS语义分割之LangSplat

LangSplat是CVPR2024的paper. 实现3DGS的语义分割&#xff08;可文本检索语义&#xff09; github: https://github.com/minghanqin/LangSplat?tabreadme-ov-file 主要思想是在3DGS中加入了CLIP的降维语义特征&#xff0c;可用文本检索目标&#xff0c;实现分割。 配置环境&…

网线水晶头为什么要按标准线序打

网线接水晶头为什么要按照线序接&#xff1f; 减少串扰和增强信号质量&#xff1a; 双绞线的设计是为了减少信号间的串扰&#xff08; Crosstalk&#xff09;&#xff0c;每一对线芯在传输过程中通过相互扭绞抵消外部电磁干扰。按照标准线序接线能够确保每一对线芯之间的信号传…