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

session、cookie、token的深度解析:身份认证的核心逻辑

首先,用一个简单的比喻来建立直观理解:
Cookie = 会员卡(由店家发放,你每次来都出示,上面可能只有卡号)。
Session = 店家后台的会员档案(根据你的卡号,在店里的电脑中查到的详细消费记录、偏好等信息)。
Token (JWT为代表) = 盖了章的加密令牌/门票(你持有这个令牌,店家只要检验令牌本身的真伪和内容即可,无需去查后台档案)。
image
image

1. Cookie 与 Session 的“经典组合”
在传统的Web开发中,Cookie和Session是协同工作的:
Cookie是载体:它只负责安全地存储和传递一个密钥——Session ID(一个随机字符串)。
Session是内容:服务器用这个Session ID作为key,在服务器端的存储(如Redis)中查找对应的value,即用户的完整会话数据(如 {user_id: 123, username: 'Alice'})。
核心问题:这种模式是有状态的,服务器必须保存和维护所有会话数据,对于大型分布式应用是负担。

2. Token (JWT是典型代表) 的革新
Token(特别是JWT)的出现是为了解决Session的扩展性问题,实现无状态认证。
自包含:Token(如JWT的Payload部分)直接包含了用户身份信息(如{user_id: 123, username: 'Alice'})和其他声明。
可验证:Token经过服务器密钥签名,接收方可以验证其是否被篡改,而无需查询数据库或会话存储。
存储灵活:Token由客户端保存,可以放在LocalStorage、SessionStorage或Cookie中(但需注意不同存储方式面临的安全风险)。

3. 关键总结与选择
Cookie vs Session: 不是一个维度的比较。Cookie是客户端存储和传递机制,Session是服务器端数据存储方案。它们通常搭配使用。
Session vs Token: 这才是两种不同的身份认证/会话管理架构的核心对比。
Session(有状态): 更“传统”,服务器控制会话生命周期,易于管理(可强制下线),但扩展性复杂。
Token(无状态): 更“现代”,适合RESTful API、移动端、跨域(CORS)和微服务架构,扩展性强,但令牌一旦签发,在过期前难以废止(需额外机制如黑名单)。

现代实践中的常见模式:
传统Web应用(SSR): 仍广泛使用 Cookie + Session(Session存于Redis)。
前后端分离(SPA + API): 普遍使用 Token(JWT),通过HTTP头传递。
兼顾安全与便利: 使用短期的Access Token(JWT) + 长期的Refresh Token,Refresh Token以安全的方式(如HttpOnly Cookie)存储。

http://www.jsqmd.com/news/173049/

相关文章:

  • 2025 零代码 AI 落地神器曝光
  • 探索 10bit 100MS/s 流水线Pipelined ADC电路:0.18um工艺下的宝藏学习资源
  • 【语音分离】基于平均谐波结构建模的无监督单声道音乐声源分离附Matlab代码
  • 【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大学数据】附Matlab代码
  • 【值得收藏】智能体(Agent)入门到精通:大模型应用开发的终极指南
  • 【破局游戏体验困局:openinstall能助力App实现什么?】
  • 一文读懂脸书创作者的赚钱通道
  • 【轴承故障诊断】加权多尺度字典学习模型(WMSDL)及其在轴承故障诊断上的应用附Matlab代码
  • AI驱动的企业创新项目管理:敏捷方法与AI的结合
  • 油管十大盈利方式,看你错过了哪些?
  • AI浪潮下的大模型学习宝典:程序员必看,高薪算法岗转型指南,建议收藏!
  • Flowjo 流式细胞分析软件介绍
  • 智能测试数据生成:提高测试效率与覆盖率
  • 牛批了,磁盘清理神器
  • 【直流电动机】基于matlab simulink直流电动机的电源控制器设计附Matlab代码
  • 二维码生成器深度评测研究报告(2025)
  • 实现CarSim/TruckSim与Simulink联合仿真:键盘操控车辆全方位指南
  • 【必收藏】从零开始学AI Agent:大模型智能体的全面指南,小白也能快速上手!
  • 微信小程序在page页面中watch监听变量变化
  • 【必读收藏】从写代码到“调教“AI:我的转型之路与开发方式革命
  • 「域乳珍品」荣膺丝路沿线国家国宾伴手礼:以中国乳香,敬世界一堂
  • 无代码二维码系统助力产品线上展示和传播
  • Ubuntu/Debian VPS 上 Apache Web 服务器的完整配置教程
  • 【值得收藏】AI Agent工作原理深度解析:从Prompt到Action,构建真正智能体的五层架构
  • ZGLanguage 解析SQL数据血缘 之 提取select语句中的源表名
  • 企业元宇宙布局中的AI数据质量:AI应用架构师的5个提升技巧
  • 提示工程架构师手册:构建多样性提示的完整指南
  • 巴菲特的圈子能力理论
  • 2025年单北斗变形监测系统推荐榜单,助力水库安全管理
  • 风储调频与VSG虚拟同步机在四机两区系统中的奇妙之旅