当前位置: 首页 > article >正文

【SpringBoot】JWT令牌

       📝个人主页:五敷有你      
 🔥系列专栏:SpringBoot
⛺️稳重求进,晒太阳

什么是JWT

JWT简称JSON Web Token,也就是通过JSON形式作为Web应用的令牌,用于各方面之间安全的将信息作为JSON对象传输,在数据传输过程中

JWT能做什么

1.授权

这是使用JWT的最常见的方案,一旦用户登录,每个后续请求将包括JWT,从而允许用户访问该令牌允许的路由,服务和资源,单点登录是当今广泛使用JWT的一项功能,因为开销小,可以在不同域中广泛使用

2.信息交换

JSON Web Token 是在各方面之间安全传输信息的好方法,因为对JWT进行签名(例如:使用公钥/私钥对)所以你可以确保发件人是他们听说的人,由于签名是使用标头和有效负载计算的,因此还可以验证内容是否遭到篡改

为什么是JWT

基于传统的Session认证

1.认证方式:

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

2.认证流程

3.暴露问题

1.每个用户经过我们的应用认证,我们的应用都要在做一次记录,以便用户下一次请求的鉴别,通常而言session都是保存在内存中的,而随着认证的用户越来越多,服务器的开端就会增大

2.用户认证之后,服务端做认证记录,如果认证的记录被保存在内存中的话,意味着用户下次请求必须要请求这台服务器上,这样才能拿到授权的资源,这样在分布式的应用上,相应的限制了负载均衡的能力。

3.因为是基于cookie来进行的用户的识别,cookie如果被截获,用户就会很容器受到跨站请求的伪造攻击

4.在前后台的分离系统中,更痛苦


http://www.kler.cn/a/232975.html

相关文章:

  • 信号与系统初识---信号的分类
  • 【CSS】HTML页面定位CSS - position 属性 relative 、absolute、fixed 、sticky
  • 每日学习30分轻松掌握CursorAI:Cursor插件系统与扩展功能
  • MySQL批量修改数据表编码及字符集为utf8mb4
  • 什么是JUC?
  • 阿里云直播互动Web
  • 【正式】今年第一篇CSDN(纯技术教学)
  • python29-Python的运算符之in运算符
  • Redis实现秒杀
  • SpringCloud-Ribbon实现负载均衡
  • Linux操作系统基础(六):Linux常见命令(一)
  • Python进阶:标准库
  • PySpark(三)RDD持久化、共享变量、Spark内核制度,Spark Shuffle、Spark执行流程
  • QT学习(五)C++函数重载
  • CISCRISC? CPU架构有哪些? x86 ARM?
  • lnmp指令
  • 【5G NR】移动通讯中使用的信道编解码技术
  • 入门指南|Chat GPT 的兴起:它如何改变数字营销格局?
  • 《MySQL 简易速速上手小册》第9章:高级 MySQL 特性和技巧(2024 最新版)
  • vue3 之 商城项目—home
  • 《Docker极简教程》--Docker基础--基础知识(二)
  • Mac上几款好用的MacBook视频播放器
  • C++一维数组
  • c# DataTable 帮助类
  • 无人机在化工消防救援中的应用,消防无人机应用场景分析
  • 洛谷使用指南