当前位置: 首页 > 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.rkmt.cn/news/188916.html

相关文章:

  • 2025 零代码 AI 落地神器曝光
  • 【轴承故障诊断】加权多尺度字典学习模型(WMSDL)及其在轴承故障诊断上的应用附Matlab代码
  • 油管十大盈利方式,看你错过了哪些?
  • Flowjo 流式细胞分析软件介绍
  • 智能测试数据生成:提高测试效率与覆盖率
  • 二维码生成器深度评测研究报告(2025)
  • 【必收藏】从零开始学AI Agent:大模型智能体的全面指南,小白也能快速上手!
  • 「域乳珍品」荣膺丝路沿线国家国宾伴手礼:以中国乳香,敬世界一堂
  • 【值得收藏】AI Agent工作原理深度解析:从Prompt到Action,构建真正智能体的五层架构
  • 巴菲特的圈子能力理论
  • 群活码制作及二维码生成场景解析
  • TREPAT:LLM重写对抗训练
  • Finereport利用JS获取当前编辑行单元格行号
  • 【Week2_Day6】【软件测试学习记录与反思】【学习SQL语句、练习navicat中SQL语句、归档思维导图、归纳遇到的问题、记录反思改进】
  • Spring Cloud生态地图——注册、配置、网关、负载均衡与可观测的组合拳
  • 从“技术盆景”到“产业森林”:2025岁末的多智能体系统崛起与产业革命
  • 2025 GEO(生成式引擎优化)行业全景报告:全场景时代下,企业如何选对技术合作伙伴?
  • 实战|香橙派+YOLOv8 低成本搞定田块分割:从环境搭建到边缘推理全流程
  • 从“量表迁移”到“智能重构”:心理咨询行业的技术范式演进与央心心理的实践
  • 实战|华为Atlas200 + YOLOv8 搞定田块分割:从环境搭建到推理全流程通关
  • uniapp input组件实现聚焦
  • 电机控制中电阻采样方法大揭秘
  • 试过很多方法没用!怎么让孩子近视度数涨得慢些?
  • MATLAB + 深度学习 = 心电图分类神器!完整流程 + 关键代码
  • 2025最新!自考党必看!10个AI论文平台测评与推荐
  • 做好孩子视力守护者预防“小眼镜”秘籍在这里
  • javaSE继承随笔
  • 智慧指挥中心建设厂商重磅盘点,成功案例+专业背书,itc保伦股份值得信赖 - 速递信息
  • 云服务器成本管控:从粗放投入到精细运营
  • 基于微信小程序的课程资料共享平台设计与实现