为什么有了session和cookie还要使用JWT

news2024/11/29 4:29:06

session和cookie

为什么要使用session和cookie,他的流程是怎么样的

因为浏览器是无状态的,相当于每一次访问都是一次全新的访问,我们一般是登录来进行校验获取他的全部信息,所以会出现这个情况

这样当然也可以使用,但是很繁琐,并且影响性能,所以出现了session和cookie,他会生成一个标识符sessionid传给前端存在cookie中

这样就可以解决浏览器无状态的问题

为什么有了session和cookie还要使用JWT

问题一

但是这个时候会出现一个问题,那么假如是分布式呢?

现在想一个例子,如果我做了集群,出现了一个新的服务器,我要怎么保证负载均衡可以把请求发送到我的原服务器呢?如果请求发到新服务器,会出现什么结果呢?

如果用户将请求发送到新服务器,会导致找不到sessionid对应的session,从而导致用户丢失登录状态,从而必须重新登录,这是大忌

那么我们是怎么解决的呢,我们也可以使用redis,将session和sessionid存入redis中,从而保证分布式也可以共享session数据

但是这样又会出现一个问题

问题二

依赖性太高了,如果出现问题会导致,所有用户登录失效

所以JWT出现了

JWT

JWT的工作原理和流程

工作原理:就是后端返回给前端一个JWT,前端每次发请求会带上这个token

流程:

其中JWT的结构图

其中头部就是存的比如算法,使用的什么类型

荷载存的就是我们的主要内容,一般有发起人,用户,失效时间,还有我们想存的都可以存

签名就是将头部和荷载进行一个加密

JWT的缺点

虽然JWT可以解决我们上面的问题,但是他也有一些缺点

1.因为无状态,token如果没有到期,我无法主动修改令牌来使用户下线

(什么叫无状态,

  • 每个请求自包含: 每个请求都包含了所有需要的信息(如 JWT),使得服务器能够理解请求而无需保持会话状态。
  • 服务器不需要存储会话信息: 服务器不需要在内存中保存有关用户会话的信息。所有的用户数据和会话信息都包含在 JWT 中,由客户端提供。

)

2.不加密,会暴露头部和荷载的信息

3.占内存,因为会转为base64格式,在网络传输中会比较大

如果不使用他们,能不能做一个登录校验和令牌

也可以的,我们可以使用一个唯一标识,比如时间戳,然后充当他的Token,并且放入redis,这样也可以解决浏览器无状态问题

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

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

相关文章

MDN边看边记

css css应用于文档的三种方法:使用外部样式表、使用内部样式表和使用内联样式。 css的层叠(cascade)和优先级(specificity): 层叠: 在css中,顺序很重要,当应用两条同级…

苹果手机怎么连接蓝牙耳机?3个方案,3秒连接

在快节奏的现代生活中,无线蓝牙耳机因其便捷性和自由度成为了许多人的首选。那么,苹果手机怎么连接蓝牙耳机呢?本文将为您介绍3种快速连接苹果设备与蓝牙耳机的方案,让您在享受音乐、通话或观看视频时,不再受线缆束缚&…

‌无人机干扰技术及其法律约束

无人机作为一种先进的航空器,‌近年来在民用、‌商用、‌军事等领域得到了广泛应用。‌然而,‌随着无人机技术的不断发展,‌其受到的潜在威胁也日益增多。‌许多外部因素可以干扰无人机的正常运行,‌甚至导致其失控或坠毁。‌本文…

linux内核驱动流程

norflash:可线性访问(和内存的访问方式相同) nandflash: 不可线性访问,必须配个专门的程序访问 Linux启动: 1. 引导程序 bootloader,为内核启动准备环境 2.启动内核(kernel) 3. 加载根文件系统(挂载) 1.bootloader启动(裸机程序)--uboot.bin --为内…

[240822] X-CMD 发布 v0.4.7: 新增 htop 、btop 和 ncdu 模块;优化 colr 和 scoop 模块

X-CMD 发布 v0.4.7 目录 X-CMD 发布 v0.4.7📃Changelog✨ htop✨ btop✨ ncdu✨ colr✨ scoop✅ 升级指南 📃Changelog ✨ htop 新增 htop 模块。本模块优先使用环境中的 htop 命令;若当前环境没有 htop 命令,模块将使用 pixi 模…

线程池的构造以及相关方法

手写线程池 package cn.itcast.n8;import lombok.extern.slf4j.Slf4j; import org.springframework.core.log.LogDelegateFactory; import java.util.ArrayDeque; import java.util.Deque; import java.util.HashSet; import java.util.concurrent.TimeUnit; import java.util…

【卡码网C++基础课 6.数组的倒序与隔位输出】

目录 题目描述与分析一、数组二、Vector三、倒序输出数组四、隔位输出五、完整代码 题目描述与分析 题目描述: 给定一个整数数组,编写一个程序实现以下功能: 1.将输入的整数数组倒序输出,每个数之间用空格分隔。 2.从正序数组中&…

可视化大屏-实现自动滚动

一、背景:可视化大屏通常需要用到自动滚动的效果,本文主要采用的是vue-seamless-scroll组件来实现(可参考官方文档) 二、实现效果: 自动滚动 三、代码实现: 解题思路: 1.先安装依赖包 npm inst…

zTree 异步加载实现 点击加载

效果图如下 每级最多显示5000条数据&#xff0c;点击加载 会再次加载5000条数据 可以监听滚动条 动态加载 我这没实现这种方式。 <!-- ztreejs --> <script src".ztree/js/jquery.ztree.core.min.js" type"text/javascript"></script>…

DLAFormer:微软提出多任务统一的端到端文本分析Transformer模型 | ICDAR 2024

论文提出新颖的基于Transformer的端到端方法DLAFormer&#xff0c;在统一的模型中集成多个文档布局分析任务&#xff0c;包括图形页面对象检测、文本区域检测、逻辑角色分类和阅读顺序预测。为了实现这一目标&#xff0c;将各种DLA子任务视为关系预测问题并提出了统一标签空间方…

kafka监控工具EFAK

kafka监控工具&#xff08;EFAK&#xff09; 1、下载2、解压3、配置3.1、安装数据库&#xff0c;需要是mysql&#xff0c;并创建ke数据库3.2、修改配置文件 4、启动4.1、启动zookeeper4.2、启动kafka4.3、启动EFAK 5、访问http://ip:8048 github地址&#xff1a;https://github…

colmap的几种相机类型和内外参取得方法

colmap的相机类型可以参考models.h文件。 主要有以下几种相机类型&#xff1a; SimplePinhole&#xff1a; 内参格式&#xff1a;f, cx, cy 实际用的时候&#xff1a;fxfyf Pinhole: 内参格式&#xff1a;fx, fy, cx, cy 其他可以自行查看models.h文件。 内参存放在images.b…

《微信小程序开发》系列:第1篇—微信小程序简介

1.什么是微信小程序 微信小程序是一种运行在微信内部的 轻量级 应用程序。 在使用小程序时 不需要下载安装&#xff0c;用户 扫一扫 或 搜一下 即可打开应用。它也体现了 “用完即走” 的理念&#xff0c;用户不用关心安装太多应用的问题。它实现了应用“触手可及”的梦想&…

回归分析系列14— 多项式回归

17 多项式回归 17.1 简介 多项式回归是线性回归的一种扩展&#xff0c;它允许回归模型包括输入变量的高次项。这种方法特别适合处理非线性关系的数据。 17.2 多项式回归模型 在多项式回归中&#xff0c;模型形式如下&#xff1a; 其中&#xff0c;p 是多项式的阶数&#xf…

Vue项目-三级联动的路由跳转与传参

三级联动组件的路由的跳转与传参 三级联动&#xff0c;用户可以点击的&#xff1a;一级分类、二级分类和三级分类 以商城项目为例&#xff0c;Home模块跳转到Search模块&#xff0c;以及会把用户选中的产品&#xff08;产品名字、产品ID&#xff09;在路由跳转的时候&#xff…

【控糖有道,健康无忧!糖尿病患者的饮食黄金法则大揭秘】

在快节奏的现代生活中&#xff0c;糖尿病作为一种常见的慢性疾病&#xff0c;正悄然影响着越来越多人的生活质量。面对这一挑战&#xff0c;科学合理的饮食管理成为了控制病情、提升生活品质的关键。今天&#xff0c;就让我们一同揭开糖尿病饮食的黄金法则&#xff0c;让“控糖…

CentOS服务器三级等保加固

1.密码周期: vim /etc/login.defs max_days:90 mindays:2 minlen:8 warnage:72.密码复杂度: vim /etc/pam.d/system-auth &#xff1a; password requisite pam_cracklib.so retry3 difok3 minlen8 lcredit-1 dcredit-1 ucredit-1 ocredit-1 【Ubuntu系统->vim /etc/pam.d/c…

Linux组的介绍,所有者,所在组,修改所在组

目录 linux组的介绍 文件/目录所有者 组的创建 文件/目录所在组 其它组 改变用户所在组 linux组的介绍 每个用户必须属于一个组&#xff0c;不能独立于组外。 这个文件是谁创建的&#xff0c;这个文件的所有者就是谁。 这个文件属于组1&#xff0c;那么组2对它来说就…

VoLTE基本信令流程(整理的学习笔记)

VoLTE基本信令流程 1. 注册基本过程 UE进行Attach&#xff0c;建立QCI9的默认承载使用IMS APN建立PDN连接&#xff0c;建立 QCI5 的默认承载&#xff0c;用于传送 SIP 信令&#xff0c;同时获取到了IMS入口的P-CSCF地址信息UE 通过 QCI5 的默认承载向 IMS 发起注册请求IMS 域…

亚马逊ERP全功能 无隐藏收费的几个地方

亚马逊全功能 ERP 采集图片订单翻译&#xff0c;无任何隐藏收费。 说说有关采集和管理的软件&#xff01;1. 对于做跟卖的人来说需要大量采集产品&#xff0c;采集过来的产品还需要进行文本、图片翻译、修图等操作&#xff0c;图片储存和站点维护另算。市面上有些 ERP 软件在这…