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

认证系统执行流程

认证系统执行流程细粒度分析

一、Session 认证演进

1. 本地 Session(单机模式)

┌─────────────────────────────────────────┐ │ Web Server │ │ │ │ User A ──→ Controller ──→ Session A │ │ User B ─→ Controller ──→ Session B │ │ │ │ │ ↓ │ │ service │ ─────────────────────────────────────────┘

流程

  1. 用户提交username + password
  2. Controller 验证后创建 Session 存储在服务器内存
  3. 返回 SessionID 给客户端(Cookie)

问题:多用户登录时,服务器需创建多个 Session,加大服务器开销


2. Session 外置(独立存储)

┌──────────────────┐ ┌──────────┐ │ Web Server │ │ Redis │ │ │ │ │ │ Controller ────→│────────→│ Session │ │ │ │ │ Session │ │ ↓ │ └────────── │ service │ └──────────────────┘

流程

  1. 用户登录 → Controller → Service
  2. Session 存储到外部 Redis(kv:userId: user对象
  3. 多服务器可共享 Session

问题

  • 产生额外硬件成本
  • Redis 宕机 →整个认证系统不可用(单点故障)

二、Token 认证(JWT 方案)

完整执行流程

─────────┐ 登录请求 ┌──────────────┐ │ User A │ ────────────────→│ 认证系统 │ │ │ ←────────────────│ │ │ │ 返回 Token │ Token │ └────┬────┘ └──────────────┘ │ │ 3. Token 存入 Pinia │ │ 4. 请求微服务(携带 Token) ↓ ┌─────────────┐ │ Middleware │ ←── verify ──→ 认证系统 │ │ │ ├─→ 购物车系统 │ └─→ 订单系统 └─────────────┘

细粒度流程分析

阶段一:登录认证
1. 用户提交 {username, password} ↓ 2. 认证系统验证身份 ↓ 3. 生成 Token(JWT) ↓ 4. Token 通过 Cookie 或 Response Header 返回前端
阶段二:前端存储
1. 前端接收 Token ↓ 2. 存入 Pinia(状态管理) ↓ 3. 后续请求自动携带 Token
阶段三:请求微服务
1. 前端从 Pinia 取出 Token ↓ 2. 以 Request Header 方式发送到微服务 ↓ 3. Middleware 拦截请求 ↓ 4. 取出 Header 中的 Token 值 ↓ 5. 远程调用认证系统进行 Token 校验
阶段四:校验与鉴权
4.1 Token = None → 返回登录页 ↓ 4.2 Token ≠ None → verify() 校验(防篡改) ↓ 4.3 校验成功 → 鉴权(判断用户是否有操作权限) ↓ 4.4 鉴权通过 → 放行到目标服务(购物车/订单)

三、Session vs Token 对比

维度SessionToken(JWT)
存储位置服务器(内存/Redis)客户端 + 服务端校验
扩展性差(需共享存储)好(无状态)
单点故障Redis 宕机则不可用认证系统可集群
跨域需处理 Cookie天然支持
性能需查存储本地验签即可

四、架构演进总结

本地 Session → Session 外置 → Token(JWT) (单机,开销大) (共享,单点故障) ![img.png](img.png) (无状态,可扩展)

推荐方案:微服务架构下使用Token + Middleware 统一鉴权

核心思想:认证与业务解耦,Middleware 统一处理 Token 校验,微服务专注业务逻辑。

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

相关文章:

  • 2026成都寒假雅思培训机构怎么选:成都出国留学考试培训/成都口语托福培训/成都国内雅思培训/成都培训雅思班/成都封闭班雅思培训/选择指南 - 优质品牌商家
  • Vue.js 浏览器兼容性完全指南:从 Vue 2 到 Vue 3 的全面解决方案
  • 影刀RPA 企业级专题篇:Kubernetes 自动化调度与分布式执行集群实践
  • 2026年5月新发布:南昌保证合同纠纷律师咨询,王景律师的专业服务解析 - 2026年企业推荐榜
  • 邯郸沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • 后端转AI应用:3-6个月实战路线,高薪转型秘籍!不啃算法,复用优势速成!
  • 2026年Q2网银Ukey安全选型:网银盾集中、Ukey安全、Ukey集中安全、U盾安全、U盾管理、U盾集中管理选择指南 - 优质品牌商家
  • 企业级Agent开发保姆级教程:从入门到交付,看这一篇就够了
  • AI 大模型对比:Gemini vs ChatGPT vs Claude Code
  • 为什么你的Midjourney照片总像“贴纸”?5个被官方文档刻意弱化的景深锚点词(附A/B测试数据集)
  • PHREEQC实践建模技术方法及典型案例解析与高阶拓展应用
  • 咸阳沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • 研发工程师企业项目数字信息改革措施实体经济发展
  • 威海沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • 工业网络升级案例:串口转以太网模块助力PLC数据实时上传集中监控
  • 烟火气 + 记忆点|樊掌柜牛羊肉粉门店全案目视化升级,藏着餐饮出圈密码
  • 【论文阅读】GEN-1: Scaling Embodied Foundation Models to Mastery
  • 2026年玉米粉加工设备排行:小型磨面粉机器/小麦磨面机/新型磨面粉机/玉米加工机械/玉米深加工设备/玉米磨面粉机/选择指南 - 优质品牌商家
  • 2026泰州AI优化可靠服务商TOP5排行:靖江网站建设/靖江网络公司/兴化AI优化/兴化geo优化/兴化做网站/选择指南 - 优质品牌商家
  • 大连旅游全攻略:行程规划 + 交通住宿 + 避坑方案(程序员出行版)
  • 【项目实训】法律文书智能摘要系统6
  • 衡阳沙发翻新换皮靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新一站式服务 - 卓信营销
  • 2026年5月更新:高压电缆回收标杆企业盘点,保定万铭综合实力解析 - 2026年企业推荐榜
  • 技术员笔记:PI胶带过锡炉后“断裂”和“残胶”的锅,到底该谁背?
  • 目前热门的饲料颗粒机品牌价格
  • 奇迹 MU 荣耀出征 新区开区 最新地址官方正版下载
  • 2026年5月洛阳旅行社深度:文化定制专家如何赋能企业团建与高端旅行 - 2026年企业推荐榜
  • 如何用Python盲水印技术保护你的数字图像版权:完整指南
  • 焦度计的柱镜值是怎么算出来的
  • 艾灵坞Ailevo新手使用教程:注册即送6000积分[特殊字符]轻松上手AI Agent!