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

认证系统执行流程

认证系统执行流程细粒度分析一、Session 认证演进1. 本地 Session单机模式┌─────────────────────────────────────────┐ │ Web Server │ │ │ │ User A ──→ Controller ──→ Session A │ │ User B ─→ Controller ──→ Session B │ │ │ │ │ ↓ │ │ service │ ─────────────────────────────────────────┘流程用户提交username passwordController 验证后创建 Session 存储在服务器内存返回 SessionID 给客户端Cookie问题多用户登录时服务器需创建多个 Session加大服务器开销2. Session 外置独立存储┌──────────────────┐ ┌──────────┐ │ Web Server │ │ Redis │ │ │ │ │ │ Controller ────→│────────→│ Session │ │ │ │ │ Session │ │ ↓ │ └────────── │ service │ └──────────────────┘流程用户登录 → Controller → ServiceSession 存储到外部 Rediskv:userId: user对象多服务器可共享 Session问题产生额外硬件成本Redis 宕机 →整个认证系统不可用单点故障二、Token 认证JWT 方案完整执行流程─────────┐ 登录请求 ┌──────────────┐ │ User A │ ────────────────→│ 认证系统 │ │ │ ←────────────────│ │ │ │ 返回 Token │ Token │ └────┬────┘ └──────────────┘ │ │ 3. Token 存入 Pinia │ │ 4. 请求微服务携带 Token ↓ ┌─────────────┐ │ Middleware │ ←── verify ──→ 认证系统 │ │ │ ├─→ 购物车系统 │ └─→ 订单系统 └─────────────┘细粒度流程分析阶段一登录认证1. 用户提交 {username, password} ↓ 2. 认证系统验证身份 ↓ 3. 生成 TokenJWT ↓ 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 对比维度SessionTokenJWT存储位置服务器内存/Redis客户端 服务端校验扩展性差需共享存储好无状态单点故障Redis 宕机则不可用认证系统可集群跨域需处理 Cookie天然支持性能需查存储本地验签即可四、架构演进总结本地 Session → Session 外置 → TokenJWT 单机开销大 共享单点故障 ![img.png](img.png) 无状态可扩展推荐方案微服务架构下使用Token Middleware 统一鉴权核心思想认证与业务解耦Middleware 统一处理 Token 校验微服务专注业务逻辑。
http://www.zskr.cn/news/1341830.html

相关文章:

  • 初识java(八):数组的定义与使用
  • 艾灵坞Ailevo新手使用教程:注册即送6000积分[特殊字符]轻松上手AI Agent!
  • 基于 Binning 亮度 0~255 全域 双系数自适应调节方案
  • 网络协议01-Http-工作原理补充
  • 彻底搞懂UART串口:为什么一次只接收8位?校验位到底怎么占?
  • GPU服务器全景解读(七):整机品牌与主力机型——从国际旗舰到国产标杆
  • 从模糊到微距级细节:Midjourney纹理生成的6层提示结构法(工业级纹理资产生产标准)
  • 大模型实战:AgentScope ReActAgent 多智能体框架实战指南,小白程序员必备收藏!
  • Vue插件报错,不显示component信息的解决方法
  • 《数据主权时代,企业协作需切换“私有模式”》
  • 光化学烟雾箱搭建全攻略:从选型到出数据的完整指南
  • 家居建材营销新趋势:数字化、体验式与可持续方向-佛山鼎策创局破局增长咨询有限公司
  • ⾯向对象和集合编程题
  • 通用人工智能的实现路径:从大模型到AGI
  • 和AI搭档办公,聊聊工业管道在线防垢清洁解决方案
  • ComfyUI v0.22.0 更新:工作流模板升级、音频与多模态增强、OpenAPI 文档完善、节点能力大幅扩展
  • ComfyUI v0.22.0 更新:工作流模板升级、音频与多模态增强、OpenAPI 文档完善、节点能力大幅扩展
  • 卖 MATLAB 工具箱,你的代码可能正被免费白嫖——聊聊商业化前的代码保护
  • WorkBuddy:一个面向内容创作的桌面自动化助手实践
  • EPRO MMS6120振动检测模块
  • 深度解析DDoS攻击:运作机制与防御体系构建
  • c语言中语句分类
  • Chiplet经济学:成本如何影响芯片产业发展?
  • BOSCH SM50/100-T伺服驱动器
  • 网卡服务与配置
  • Apache Flink概述
  • 指控系统中态势感知与OODA双螺旋智能系统
  • 如何构建一个健康的学术生态
  • 2026年5月降AI软件红黑榜出炉:论文AI率90%降至3.8%,精准去除ai痕迹!
  • ZFX山海证券:“消费转向考验零售韧性”