Skip to content

token版本管理实现多端登陆踢人下线及无限延期

512字约2分钟

nestJsJWT

2025-03-13

实现单token无限刷新延期,二端登陆踢人方案

  1. Token 无限刷新 • 用户登录 时,服务器返回一个 JWT Token,并在 payload 中存入 token_version(默认为 0)。 • 每次请求,后端生成 新 Token 并返回给前端,前端替换旧 Token 继续使用,实现无限刷新。

  2. 多端登录管理(踢人下线) • 用户登录时,token_version 在数据库存储,每次新登录时,token_version +1,使旧 Token 失效。 • 请求接口时,验证 Token 内的 token_version 是否与数据库一致: • 一致:正常返回数据。 • 不一致:说明用户在其他设备上重新登录,强制当前设备登出。

实现

auth.guard.ts
user.controller.ts