基于session的验证方式和Token验证方式的区别,以及JWT的具体实现流程

2023-10-27

1、传统的cookie认证过程

长期以来,基于Session的认证(Session based authentication)一直处于主流地位。由于http协议是无状态的,借助cookie,客户端登陆成功后,服务端就能识别其后续请求,而不需要每次都登陆。它是有状态的(statefull),也就是服务端和客户端都需要保存生成的session,也就是说在服务端需要在数据库中追踪session是否alive,客户端要把session写入cookie中。基本过程如下:
在这里插入图片描述

  • 客户端登陆,一般输入用户名和密码
  • 服务端如果验证通过,就会生成session,并把它存入数据库中
  • 客户端在浏览器上会产生cookie,并把session_id写入
  • 客户端后续有新的请求,都会在请求后携带sessIon_id,发给服务端
  • 如果客户端登陆出去(log out),该生成的session就会在服务端都被销毁,session_id在客户端也会被清除

基于Token 认证和session 认证的比较
基于Session的认证方式

那么这样做有什么问题呢?

  1. 服务端需要保存每个用户的session,这对于很多访问用户的情景来说,服务端的负担很重,需要大量的的资源来存储session
  2. 另一方面不能很好解决跨域资源共享问题Cross-Origin Resource Sharing (CORS)
  3. cookie存储在客户端或者浏览器引入了很多不安全因素,招致了很多专门针对cookie的攻击如上面这个攻击,在Java Guide中有详细的举例描述:JWT 身份认证优缺点分析以及常见问题解决方案
  4. 这个链接中也谈了很多Session的相关缺点:如何理解HTTP的“无连接”和“无状态”

2、Token的认证方式

为了解决以上的问题,我们引入了Token的技术来解决登录验证与用户的状态记录等信息:
15分钟详解 Python 安全认证的那些事儿

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于session的验证方式和Token验证方式的区别,以及JWT的具体实现流程 的相关文章

  • Java中的的类和对象

    类的概念 类是对生活中具有相同属性和行为的事物的抽象 它是一个大概的范围 类包含属性和行为 属性和行为在程序中也叫做成员变量和成员方法 对象的概念 是能够看得到的具备行为和属性的真实存在的实体 类和对象的关系 类是对象的抽象的范围表达 对象
  • 重写equals方法

    重写equals方法 相信在每个人都有过重写过java的equals的方法的经历 这篇博文就从以下几个方面说明重写equals方法的原由 与君共进步 一 为什么要重写equals方法 首先我们了解equals方法的作用是什么 java的官方
  • 关于String的hashcode,以及判断字符串是否相等的解析

    跟着老师的方法验证equals方法的重写 由于误写发现运行结果和预想的不一样 先上代码 package com wuyw oo import java util Objects author wuyw2020 date 2019 10 28
  • 【java学习】String字符串

    1 概念 1 String 不可变 不可变类 final 不可被继承 public final class String implements java io Serializable Comparable
  • leetcode刷题(5)

    各位朋友们 大家好 今天是我leedcode刷题的第五篇 我们一起来看看吧 文章目录 栈的压入 弹出序列 题目要求 用例输入 提示 做题思路 代码实现 C语言代码实现 Java代码实现 最小栈 题目要求 用例输入 提示 做题思路 代码实现
  • java中this的使用

    一 本类中方法 属性 构造器的调用 1 属性的调用 当构造器中初始化对象的时候 如果形参名与属性名相同 这时候可以在等号左边的属性前面加上this表示 这个指向的是类的属性而不是指向形参 2 方法的调用 3 构造器的调用 1 在定义含参构造
  • leetcode刷题(3)

    各位朋友们大家好 今天是我leedcode刷题系列的第三篇 废话不多说 直接进入主题 文章目录 分割链表 题目要求 用例输入 提示 做题思路 c语言代码实现 Java代码实现 相交链表 题目要求 用例输入 提示 做题思路 c语言实现代码 J
  • ] 2014找工作总结-机会往往留给有准备的人

    看了这篇文章 感觉到了震撼 如果早看到该有多好 我也是2014年的毕业生 我的找工作历程也基本上告一段落了 与本博文的原作者比起来 自己仿佛到现在也没有真正的为工作而准备 这也是自己没有规划的原因吧 所以在找工作的过程中只收到了一个offe
  • Java集合框架之Set集合简介

    和List集合一样 Set集合也是属于单列集合 同属于Collcetion集合体系下 List和Set都是单列集合 但是他们是存在区别的 List 有序 元素可重复的单列集合 Set 无序 元素不可重复的单列集合 Set和List集合一样属
  • [实习]Skywalking

    SkyWalking 1 是什么 skywalking是一个包含监控 追踪 并拥有故障诊断能力的分布式系统 它主要的作用是全链路监控 收集数据 分析处理数据 然后可视化呈现 这么说有点抽象 接下来画图来说 这是skywalking的架构 它
  • HashMap的使用

    put方法 Hashmap的put方法放值 可以单次向HashMap中添加一个键值对 没有顺序 HashMap
  • 蓝桥杯有必要参赛吗?

    昨天和群里的小伙伴在群里聊 有的小伙伴竟然说蓝桥杯一等奖没有含量 我也是醉了 就像去年看了一个号主写的 研究生遍地都是 放眼全国14亿人口 别说研究生了 本科生占比有多少 蓝桥杯是我人生中得到的第一个大奖 在蓝桥杯大赛备赛期间 我学到了很多
  • java垃圾回收机制

    今天算是对java的gc有了一定的了解 三篇文章做个标记 配合上篇文章来看 http www daniel journey com archives 139 另外推荐三篇很棒的文章 JVM调优总结 Java 6 JVM参数选项大全 一次Ja
  • java常见面试题及答案 11-20(JVM)

    11 JVM内存分哪几个区 每个区的作用是什么 java虚拟机主要分为以下一个区 方法区 1 有时候也成为永久代 在该区内很少发生垃圾回收 但是并不代表不发生GC 在这里进行的GC主要是对方法区里的常量池和对类型的卸载 2 方法区主要用来存
  • 【Java 学习】方法 和 一些编程案例

    文章目录 一 概述 二 案例 1 计算1 n的和返回 2 判断整数是奇数还是偶数 3 数组求最值改方法实现 三 方法的内存原理 四 方法参数传递机制 基本类型 引用类型 五 参数传递的案例 1 打印整型数组内容 2 从数组中查询指定元素的索
  • 关于ArithmeticException 异常捕获(double类型的数据除于0为什么是无穷大?)

    关于ArithmeticException 异常捕获 double类型的数据除于0为什么是无穷大 在做实验编写应用程序 从命令行中输入表示两个小数的参数的字符串 求它们的商 要求程序捕获NumberFormatException异常和Ari
  • java多线程:线程池和阻塞队列

    一 线程池定义和使用 jdk 1 5 之后就引入了线程池 1 1 定义 从上面的空间切换看得出来 线程是稀缺资源 它的创建与销毁是一个相对偏重且耗资源的操作 而Java线程依赖于内核线程 创建线程需要进行操作系统状态切换 为避免资源过度消耗
  • java实现一个整数和一个小数的四则运算和求最大值,平均值。

    实现一个整数和一个小数的四则运算和求最大值 平均值 import java applet Applet import java awt public class Yunsuan extends Applet Label prompt1 pr
  • Java封装性(包含this关键字,构造器等)

    目录 一 封装性的含义 二 封装性的作用 三 封装性的体现 3 1 四种权限修饰符的介绍 3 2 分装性具体的实现 四 构造器的解释 4 1 构造器的作用 4 2 注意事项 4 3 构造器的举例说明 五 this关键字的使用 5 1 thi
  • 1005. K 次取反后最大化的数组和 && 增强for循环(foreach循环)遍历数组

    1005 K 次取反后最大化的数组和 原题链接 完成情况 解题思路 参考代码 1005K次取反后最大化的数组和 1005K次取反后最大化的数组和 简洁写法 错误经验吸取 增强for循环 foreach循环 遍历数

随机推荐

  • 接入谷歌AdSense后浏览器控制台报错:Failed to load resource: the server responded with a status of 403的原因及解决办法、

    本篇文章主要讲解 接入谷歌AdSense后浏览器控制台报错 Failed to load resource the server responded with a status of 403 ads 的原因及解决办法 日期 2023年6月1
  • 掌优电子刷脸支付未来可期

    据 重庆商报 报道 近日 由广州某科技公司自主研发的两款比邻星系列红外活体相机以及核心算法 正式通过金融行业的国家级权威性检测机构 银行卡检测中心 以下简称BCTC 的严格技术检测 成为目前全国唯一过检BCTC的红外双目相机 其活体检测性能
  • 单例模式---Java实现

    单例模式涉及到一个单一的类 该类负责创建自己的对象 同时确保只有单个对象被创建 这个类提供了一种访问其唯一的对象的方式 可以直接访问 不需要实例化该类的对象 注意 1 单例类只能有一个实例 2 单例类必须自己创建自己的唯一实例 3 单例类必
  • Keil编辑和STM32cubemx配置STM32控制步进电机

    使用Keil ARM V5 IDE编程和STM32CUBEMX代码配置实现STM32F103和步进电机驱动器模块A4988控制步进电机 Keil和Stm32cubemx 安装 安装Keil IDE非常简单 下载包含Keil IDE的MDK
  • 基于UmiJs开发移动端的自适应配置方案

    在移动端开发过程中 响应式布局是必须要考虑的一个问题 基于UmiJs开发时 使用的组件库是antd mobile 通过在 umirc js中添加配置项 及可以通过对于的postCss插件postcss px to viewport解决响应式
  • 转载 十分钟理解Actor模式

    Actor模式是一种并发模型 与另一种模型共享内存完全相反 Actor模型share nothing 所有的线程 或进程 通过消息传递的方式进行合作 这些线程 或进程 称为Actor 共享内存更适合单机多核的并发编程 而且共享带来的问题很多
  • 【C++】哈希和unordered系列封装

    1 哈希 1 1 哈希概念 顺序结构以及平衡树中 元素关键码与其存储位置之间没有对应的关系 因此在查找一个元素时 必须要经过关键码的多次比较 顺序查找时间复杂度为O N 平衡树中为树的高度 即O l o g 2 N
  • XMind 各版本官网下载地址

    本博文为备份用 所有链接皆为官网地址 请勿无耻举报 本文仅为软件备份用 方便大家下载官方原装软件 以下版本皆非最新版本 仅备份未列于官网上的软件 其他软件自行去这里下载 http www xmind net download previou
  • 解决Error L6218E Undefined symbol XXX....问题

    分享一个keil的错误编译提示以及其问题解决方法 当我们碰到 Error L6218E Undefined symbol XXX 这个错误提示 其实出现这问题的原因就是我们调用了没有定义的函数 就比如你把一个函数定义注释了 然后却在程序调用
  • Arduino STM32F103C8T6(BluePill) 教程六 STM32 IO操作(LED灯蜂鸣器继电器ADC/PWM)

    Arduino STM32F103C8T6 BluePill 教程六 STM32 IO操作 LED灯蜂鸣器继电器ADC PWM 1 IO操作的 pinMode 函数 形式 void pinMode uint8 pin WiringPinMo
  • eNSP入门介绍(超级超级详细!!!)

    Ensp Enterprise Network Simulation Platform 是华为提供的一款网络仿真平台 主要用于学习 实践和测试企业网络场景 Ensp可以模拟各种网络设备 如交换机 路由器 防火墙等 创建以太网 无线网络等多种
  • COLMAP稀疏重建得图像内外参文件

    前言 一 DTU数据集 二 COLMAP操作步骤 1 安装COLMAP 2 COLMA稀疏重建 总结 前言 整个流程是 第一节用COLMAP求出DTU训练数据集内外参数 第二节处理COLMAP得到的images txt文件中外参 一 DTU
  • listview添加数据_ListView 使用详解

    和你一起终身学习 这里是程序员Android 经典好文推荐 通过阅读本文 您将收获以下知识点 一 ListView 简介二 ListView 常用属性三 ListView主要使用方法如下四 使用android entries 为ListVi
  • 用set_series_opts在PyEcharts中实现系列配置

    全局配置项可通过 set global opts 方法设置 笔记仅是个人的学习笔记总结 如有雷同请见谅 系列配置顶 用法 1 先创建数据 from pyecharts charts import Bar from pyecharts fak
  • 开启XP远程桌面的网络级身份验证(NLA)模式

    indows XP SP3下不支持网络级别身份验证 而Vista Windows 7则支持 那么 何谓网络级身份验证呢 网络级别身份验证 NLA Network Level Authentication 是一种新的身份验证方法 在你建立远程
  • YOLOV3实战6:显示中文标签(YOLOV3中文标签)

    一 番外说明 大家好 我是小P 今天在此给大家分享一下基于DarknetAB版本的YOLOV3如何生成和显示中文标签的方法 效果如下图所示 希望大家支持和喜欢 此外 对 目标检测 模型压缩 语义分割 感兴趣的小伙伴 欢迎加入QQ群 8132
  • openwrt在7620A上对fat格式U盘的支持

    openwrt刷好的固件 在7620a上运行时 可以看到设备节点 但是mount一直提示codepage cp437 not found make menuconfig发现 确实对cp437没有选 路径在Kernel modules gt
  • Swift5.X版本StoreKit原生内购

    内购是移动端一值在讨论的话题 每次上架内购功能要做好被拒的准备 小萌在2年前也做过内购 是OC版本 回想那段往事一把血泪呀 被拒了无数次才把内购功能送上AppStore 小萌之前的OC内购 中间也经历了不少的困难 详情请看苹果内购审核那些被
  • stc单片机使用外部中断+EC11编码器实现计数功能

    stc单片机使用外部中断 EC11编码器实现计数功能 相关篇 STC15 8单片机特有的PWM寄存器和普通定时器实现PWM输出 串口输出测试效果 EC11编码器原理图 EC11编码器输出信号说明 检测说明 以EC11 A信号作为一个时钟基准
  • 基于session的验证方式和Token验证方式的区别,以及JWT的具体实现流程

    1 传统的cookie认证过程 长期以来 基于Session的认证 Session based authentication 一直处于主流地位 由于http协议是无状态的 借助cookie 客户端登陆成功后 服务端就能识别其后续请求 而不需