logout如果一个用户要保持其它 的login的refresh-token
这通常是一个多设备登录管理的需求即用户在退出当前设备时希望不影响其他已登录设备手机、平板、其他浏览器的会话。要让你的logout接口实现这个效果关键在于区分“退出登录”与“撤销所有凭证”。以下是具体的实现策略1. 核心逻辑建立“设备指纹”映射不要只把refresh_token与用户 ID绑定而要绑定到用户 ID 设备ID。生成设备ID在每次登录时服务端生成一个唯一标识如device_id并将其返回给客户端或存入客户端 Cookie。存储结构在数据库或 Redis 中存储refresh_token时使用复合主键(user_id, device_id)或存储映射关系user_id - [device_id_1, device_id_2]。2. 注销接口Logout的实现调整当用户只点击“退出当前设备”时你的logout接口应该执行以下操作go// 伪代码示例 func LogoutHandler(c *gin.Context) { // 1. 获取当前请求携带的 refresh_token token : c.GetHeader(Authorization) // 2. 解析 token获取其中的 user_id 和 device_id claims : parseToken(token) userId : claims.UserID deviceId : claims.DeviceID // 关键必须从 token 载荷中读取 // 3. **关键操作**仅删除该特定 (user_id, device_id) 对应的 refresh_token err : redisClient.Del(ctx, fmt.Sprintf(refresh:%s:%s, userId, deviceId)) // 4. 返回成功客户端清除本地的 token // 此时数据库/Redis 中仍保留着其他设备的 refresh_token它们依然有效 }3. 存储方式建议以 Redis 为例为了支持快速删除单个设备推荐使用Hash或String 索引结构Key 设计refresh:{user_id}:{device_id}优点删除时只需精准DEL这个 Key不影响其他 Key。缺点如果想“一键踢出所有设备”需要遍历所有 Key。辅助索引用于“踢出所有设备”如果你还想保留“注销所有设备”的功能可以再维护一个 SetKey:user_devices:{user_id},Value:[device_id_1, device_id_2]单设备登出DEL refresh:user:device1不移除 Set 里的记录也可以旧设备下次用旧 ID 登录会覆盖。全部登出遍历 Set删除所有refresh:user:*。4. 签发 Token 时的改造在登录/刷新 Token 的接口中你需要将device_id写入 JWT 的 Payload 中go// 生成 token 时 claims : jwt.RegisteredClaims{ Subject: userID, ID: deviceID, // 将设备ID存入JTI或自定义字段 ExpiresAt: jwt.NewNumericDate(time.Now().Add(7 * 24 * time.Hour)), }这样当Logout接口收到请求时直接从请求头解析出的 Token 里拿到device_id就知道当前操作的是哪台设备了。5. 客户端前端的配合服务端返回 200 OK 后前端清除本地存储的access_token和refresh_token。注意服务端删除的是该设备的refresh_token但其他设备浏览器里的access_token可能还没过期。由于access_token是无状态的如果其他设备拿着旧的access_token请求资源依然会通过只有当该设备需要刷新令牌refresh_token已失效或强制访问需要最新权限的接口时才会要求重新登录。这是一种常见的折中方案。总结方案对比场景操作方式对其他设备的影响单设备退出你的需求精准删除refresh_token记录的WHERE user_id ? AND device_id ?无影响其他设备正常使用修改密码/账号异常批量删除DELETE FROM tokens WHERE user_id ?所有设备均需重新登录服务端无状态 JWT不存库将(user_id, device_id)加入 Redis 黑名单其他设备可能因黑名单匹配而失效需谨慎设计黑名单 Key推荐做法使用上述“存储型 Refresh Token Device ID”方案。这是目前业界如 OAuth 2.0 的device_id参数比较成熟的做法能完美实现“退出当前设备而不影响其他设备”。如果你需要更详细的代码示例比如 Gin Redis 的具体实现或者想了解如何实现“一键踢出所有设备”的反向操作可以告诉我我继续补充。

相关新闻

【限时解密】某头部AIGC平台2026内测副业通道:仅开放给持有NLP基础认证+100小时标注经验者(附3天速通备考路线)

【限时解密】某头部AIGC平台2026内测副业通道:仅开放给持有NLP基础认证+100小时标注经验者(附3天速通备考路线)

更多请点击: https://intelliparadigm.com 第一章:AI副业 2026新机会 随着大模型轻量化、边缘AI芯片普及与开源生态爆发式演进,2026年AI副业已从“技术极客专属”转向“可规模化交付的微型服务经济”。开发者无需自建训练集群,即…

2026/7/18 19:03:55阅读更多 →
Coze变量调试黑盒破解:Chrome DevTools联动Memory Inspector实时追踪,3分钟定位记忆丢失根因

Coze变量调试黑盒破解:Chrome DevTools联动Memory Inspector实时追踪,3分钟定位记忆丢失根因

更多请点击: https://intelliparadigm.com 第一章:Coze变量与记忆功能的底层机制解析 Coze 平台中的变量与记忆并非简单的键值缓存,而是基于会话上下文(Session Context)与 Bot 生命周期协同管理的双层状态系统。其核…

2026/7/18 19:03:55阅读更多 →
WarcraftHelper:魔兽争霸3终极优化指南,让经典游戏焕发新生

WarcraftHelper:魔兽争霸3终极优化指南,让经典游戏焕发新生

WarcraftHelper:魔兽争霸3终极优化指南,让经典游戏焕发新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 你是否还在为《魔兽…

2026/7/18 19:01:55阅读更多 →
移动端桌面快捷方式实现:Android与iOS开发指南

移动端桌面快捷方式实现:Android与iOS开发指南

1. 移动端桌面快捷方式实现概述在移动互联网时代,让用户快速访问特定功能或页面是提升用户体验的关键。桌面快捷方式作为一种直观的入口,能够显著提高用户留存和使用频率。不同于PC端的快捷方式,移动端实现需要考虑不同操作系统的特性和限制。…

2026/7/18 20:04:00阅读更多 →
工业机器人程序怎么写才好维护:模块化、命名与异常处理

工业机器人程序怎么写才好维护:模块化、命名与异常处理

接手过别人写的机器人程序的人,大概都体会过那种绝望:一个主程序从头拉到尾几百行,点位全是 P1 到 P200 光秃秃的编号,寄存器 R[1] 到 R[50] 一个注释没有,异常处理就一句“报警停机等人来”。这种程序,能跑…

2026/7/18 20:04:00阅读更多 →
Generate Output Products与Create HDL Wrapper

Generate Output Products与Create HDL Wrapper

这两者在 Vivado 的 Block Design (BD) 设计流程中分工明确,简单来说:Generate Output Products 是处理 BD 内部的“脏活累活”,而 Create HDL Wrapper 是给 BD 套上一层对外沟通的“代码外衣”。以下是详细的区分以及添加新 IP 后的操作指南…

2026/7/18 20:04:00阅读更多 →
【Coze高级变量链路图谱】:首次公开内部Memory Graph架构设计文档(限前500名领取)

【Coze高级变量链路图谱】:首次公开内部Memory Graph架构设计文档(限前500名领取)

更多请点击: https://codechina.net 第一章:Coze变量与记忆功能的演进脉络与设计哲学 Coze 平台的变量与记忆机制并非孤立的技术模块,而是其对话式 AI 构建范式演进的核心体现。早期版本依赖静态上下文快照与有限生命周期的 session 变量&am…

2026/7/18 20:04:00阅读更多 →
【一文了解】RAG引擎-RAGFlow

【一文了解】RAG引擎-RAGFlow

前言 在人工智能领域,大模型RAG(Retrieval-Augmented Generation)技术正成为提升大语言模型性能的关键。RAG技术通过结合检索机制和生成模型,使大型语言模型能够访问和利用外部知识库,生成更加准确和相关的回答。目前…

2026/7/18 20:04:00阅读更多 →
导师说论文有AI痕迹,有哪些真正公认好用的的降AIGC软件推荐?

导师说论文有AI痕迹,有哪些真正公认好用的的降AIGC软件推荐?

毕业论文去AI痕迹,关键在语义重构 学术润色 降AIGC率的工具,免费与付费配合使用更高效。下面按中文、英文、免费/付费分类推荐,附实测效果与适用场景。 一、中文论文降重工具(最常用) 1. 千笔AI(综合全能…

2026/7/18 20:02:00阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/18 10:49:13阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/18 8:49:08阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/18 14:49:24阅读更多 →
从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

更多请点击: https://kaifayun.com 第一章:从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则 在Claude驱动的产品需求文档(PRD)生成实践中,原始业务意图往往以自然语言片…

2026/7/18 0:00:14阅读更多 →
Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

更多请点击: https://codechina.net 第一章:Cursor配置生成失效?3大隐藏陷阱4行修复代码,资深工程师连夜整理的紧急补救清单 Cursor 配置生成突然失效,是近期高频报障场景。表面看是 cursor.config.json 未更新或 LSP…

2026/7/18 0:00:14阅读更多 →
某智驾大牛创业

某智驾大牛创业

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…

2026/7/18 0:00:14阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/17 22:48:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/18 14:49:24阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/18 18:49:35阅读更多 →