You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular+JWT认证下,.NET 7 Web API如何识别多登录用户会话

.NET 7 Web API 基于JWT的用户身份识别逻辑

首先得明确:JWT是无状态认证机制,.NET 7 Web API里并没有传统意义上的“会话匹配”——服务器不会存储用户的会话数据,所有用户身份信息都封装在JWT Token本身里。

具体的身份识别流程是这样的:

  • 用户通过Angular客户端提交登录请求,验证通过后,.NET 7服务器生成包含用户核心信息(比如用户ID、角色、权限等)的JWT Token,返回给客户端。
  • 客户端将Token存储在本地(比如localStorage或会话存储),之后所有需要权限的请求,都会在HTTP请求头的Authorization字段里带上Bearer {你的Token}。
  • .NET 7的JWT认证中间件会自动拦截带Token的请求,做以下处理:
    1. 验证Token的签名有效性,确保Token没有被篡改。
    2. 检查Token的过期时间(exp声明),判断是否失效。
    3. 解析Token中携带的所有用户声明(Claims),生成ClaimsPrincipal对象,这个对象就代表当前请求的用户身份。
  • 后续的业务代码里,你可以通过HttpContext.User获取到这个ClaimsPrincipal,从而识别当前请求属于哪个用户。

这种机制天然支持多用户同时登录:每个用户的Token都是独立的,服务器通过解析不同的Token得到不同的ClaimsPrincipal,完全不需要额外的会话匹配逻辑。

如果需要实现多设备登录限制(比如禁止用户同时在多个设备登录),那得自己额外扩展——比如在数据库中记录用户的有效Token列表,每次请求时验证当前Token是否在用户的有效列表内,同时处理Token过期或注销的逻辑。

内容的提问来源于stack exchange,提问作者Rushee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 14:04:57