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

身份认证: JWT和Session是什么?

一、为什么需要临时凭证?

系统面临三个核心约束:

  1. 唯一鉴权方式只有(账号,密码)

  2. 服务端不记录请求状态,服务端不知道用户已登录了

  3. 避免重复传输敏感信息,不能每次都携带(账号,密码)进行请求

解决方案:登录时下发有时效的「通行证」

二、JWT的核心原理

如果通行证是一个简单的字符串info,会发生什么问题?

答: info可以被篡改伪造,服务端无法进行身份认证

解决方案: 将info用私钥加密为Signature,将(info,Signature)捆绑下发

如果篡改或伪造,需要同时修改info和Signature两部分,而没有私钥无法正确生成Signature

 

JWT的三部分为:

  1. Header(头部):描述令牌类型和签名算法

  2. Payload(负载):存放实际数据(如用户ID、过期时间等)

  3. Signature(签名):对前两部分的加密

格式:Header.Payload.Signature(Base64URL编码拼接)

三、Session的核心原理 

服务端生成一个全局随机SessionID,并在服务器上存储(SessionID,用户信息)表示用户已登录

然后将SessionID下发到客户端, 后续请求时只需要携带SessionID

四、安全性问题 

为什么不能每次发送密码?
风险维度密码直传临时凭证
通信安全必须全程HTTPS只需保护初始登录
泄露影响相当于永久权限有时效性
客户端存储密码明文存储风险极高仅存储无意义字符串

 并不是说使用JWT、Session就绝对安全了,只是凭证具有时效性,危害较小

http://www.lryc.cn/news/2386557.html

相关文章:

  • OpenFOAM 字典系统与求解器配置解析机制
  • 机器学习中的多GPU训练模式
  • TPAMI 2025 | CEM:使用因果效应图解释底层视觉模型
  • 小红书文章内容提取免费API接口教程
  • Halcon 图像预处理②
  • 20250526-C++基础-函数指针
  • 软考 系统架构设计师系列知识点之杂项集萃(73)
  • 大模型训练中的GPU作用解析
  • Flutter Web 3.0革命:用WebGPU实现浏览器端实时光追渲染,性能提升300%
  • DeepSeek-V3-0526乍现
  • Java设计模式之观察者模式:从基础到高级的全面解析
  • C/C++---类型转换运算符
  • STM32 I2C 通信协议
  • 【后端高阶面经:Elasticsearch篇】38、Elasticsearch 高可用架构解析:分片容灾、Translog 调优与双集群
  • 5月26日复盘-自注意力机制
  • *HTML `<script>` 标签中的核心属性解析:掌控脚本加载与执行的艺术
  • 聊一聊接口测试如何设计有效的错误响应测试用例
  • 记忆上传与自我同一性的哲学-技术综合分析
  • 人工智能工程师学习路线总结(下)
  • Vue:axios(POST请求)
  • 企业级调度器LVS (面试版)
  • 从OTA双雄「共舞」,透视旅游持续繁荣背后的结构性跃迁
  • 华为OD机试真题——虚拟理财游戏(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • Vue-01(Vue CLI创建项目以及文件配置说明)
  • 华为云Flexus+DeepSeek征文 | DeepSeek-V3/R1商用服务开通体验全流程及使用评测
  • redis列表类型
  • 人工智能数学基础实验(一):智能推荐系统实战
  • uni-app学习笔记十二-vue3中组件传值(对象传值)
  • Vue.js教学第十四章:Vuex模块化,打造高效大型应用状态管理
  • Ubuntu/Linux 服务器上调整系统时间(日期和时间)