前后端分离+微服务架构下的用户认证

先明确一些核心组件:

组件 作用
前端 页面展示、用户交互、存储Token
API网关 统一入口、路由转发、Token校验
认证中心 用户登录验证、生成/刷新Token
微服务 处理业务逻辑、获取用户信息
数据库 存储用户账号密码、权限信息

当时面试官跟我说,你可以从前端打开一个页面开始讲。

那我们就举个例子:

以用户打开一个电商网站首页➡️跳转登录➡️输入账号密码登录➡️携带Token请求商品列表为例,说一下这个完整的流程。

1.前端打开页面,检查本地是否有Token

用户在浏览器输入 https://www.example.com,前端代码首先检查本地存储中是否存在有效的Token。

2.没有Token,前端跳转登录页,用户输入账号密码

如果本地没有Token,前端路由跳转到 /login 登录页,用户输入账号和密码,点击【登录】按钮。

3.前端发送登录请求到API网关

前端将账号密码封装成POST请求,发送到API网关。

需要注意的是:前端不直接请求认证中心,所有请求都走网关统一入口。

4.API网关转发登录请求到认证中心

API网关收到 /auth/login 请求,根据路由规则,将请求转发到认证中心服务。

5.认证中心验证用户信息,生成JWT Token

认证中心做以下3件事:

  1. 从数据库查询用户信息,验证账号密码是否正确;
  2. 验证通过后,生成 JWT Token(分为 Access Token 和 Refresh Token);
  3. 将 Token 返回给前端。

那什么是JWT呢?

JWT(JSON Web Token)是一种无状态的Token,由三部分组成,用 . 分隔:

  • Header:头部,存算法和类型;
  • Payload:载荷,存用户信息(比如userId、username、过期时间);
  • Signature:签名,用密钥对Header和Payload签名,防止Token被篡改。

6.前端收到Token,存储到本地

前端收到认证中心返回的 access_tokenrefresh_token,存到本地存储中。

7.前端携带Token请求业务接口

用户登录成功后,前端请求商品列表接口,在请求头 Authorization 中携带 Bearer Token

Bearer 这个单词的意思是"持票人"、"持有者"。

Bearer Token 就是:"谁持有这个 Token,谁就是合法的访问者,服务器就认谁"。

8.API网关校验Token

API网关收到 /product/list 请求,通过全局过滤器校验Token的有效性:

  1. 从请求头 Authorization 中取出Token;
  2. 验证Token的签名是否正确;
  3. 验证Token是否过期;
  4. 校验通过后,将用户信息(比如userId)放入请求头,转发给微服务;
  5. 如果校验失败,直接返回401未授权。

9.微服务获取用户信息,处理业务逻辑

微服务(比如商品服务)收到网关转发的请求,从请求头 X-User-Id 中取出userId,处理业务逻辑(比如查询该用户的商品列表)。

10.Token过期,前端用Refresh Token刷新

Access Token有效期比较短(比如只有2小时),过期后前端请求会收到401;

此时前端不用让用户重新登录,而是用Refresh Token去认证中心刷新Access Token。

相关推荐
大模型码小白10 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
CS创新实验室10 小时前
量子计算机的操作系统:原理、实践与经典架构之对比
架构·操作系统·量子计算
腾渊信息科技公司11 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
人间凡尔赛11 小时前
WAIC 2026 落幕,AI Agent 开发已进入 Harness 架构时代
人工智能·架构
极客侃科技11 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
沉默王二11 小时前
腾讯一面,我霸气反问:“你说你们在做Agent项目,说说 SubAgent、Plan 模式、Skill 调用这些你们都是怎么做的?”面试官一直在擦汗。。
面试·agent·ai编程
晏宁科技YaningAI11 小时前
VoIP系统的工程实现模型:从信令控制到媒体传输的完整架构解析
网络·人工智能·架构·系统架构·信息与通信
爱笑的源码基地12 小时前
高并发 Redis 缓存门诊HIS系统源码,含财务统计药房进销存
java·程序·门诊系统·诊所系统·云诊所源码
剑之所向12 小时前
前后端分离架构
架构
延凡科技12 小时前
多场景落地复盘:端边云架构无人机智能巡检系统设计与实践
大数据·数据结构·人工智能·科技·架构·无人机·能源