
用户反馈:"我的账号被人登了!" 运营催你:"赶紧把那个违规用户踢掉!" 安全审计:"检测到异常登录,需要立即强制下线!"
作为后端开发,会话管控能力是绑不开的刚需。
今天咱们就来聊聊 Sa-Token 框架里的「踢人下线」功能——只需一行代码,就能把指定用户"请"出去。
踢人下线的本质非常简单:
找到目标用户的 Token → 让它失效。
就这么直接,没有弯弯绕绕。

踢下线
Sa-Token 提供了 3 种不同的下线方式,适用于不同的业务场景。咱们一个个来看。
这是最"干净"的方式,直接销毁用户的登录态。
StpUtil.logout(); // 强制指定账号注销下线 
StpUtil.logout(, "PC"); // 强制指定账号指定端注销下线 
StpUtil.logoutByTokenValue("token"); // 强制指定 Token 注销下线
适用场景:
用户再次访问时,系统会提示:Token 无效。
跟强制注销不同,踢人下线不会删除 Token,而是给它打上一个「被踢」的标记。
StpUtil.kickout(); // 将指定账号踢下线
StpUtil.kickout(, "PC"); // 将指定账号指定端踢下线
StpUtil.kickoutByTokenValue("token"); // 将指定 Token 踢下线
适用场景:
用户再次访问时,系统会提示:Token 已被踢下线。
对比项 | 强制注销 (logout) | 踢人下线 (kickout) |
|---|---|---|
Token 处理 | 直接删除 | 打标记,保留 |
用户感知 | Token 无效 | Token 已被踢下线 |
典型场景 | 账号封禁、密码修改 | 异常登录检测、安全审计 |
一句话总结:logout 是"你没了",kickout 是"你被请走了"。
这是一个比较特殊的 API。
"顶人下线" 通常发生在登录时——当同一账号在新设备登录,框架自动把旧设备顶掉。
一般情况下,你不需要手动调用这个方法,框架会自动处理。
但如果你有特殊需求,也可以手动触发:
StpUtil.replaced(); // 将指定账号顶下线 
StpUtil.replaced(, "PC"); // 将指定账号指定端顶下线
StpUtil.replacedByTokenValue("token"); // 将指定 Token 顶下线
适用场景:
根据我的项目经验,给你几点建议:
logout,彻底清理kickout,保留痕迹便于排查replaced,或者直接配置框架的并发登录策略会话管控看起来是个小功能,但在实际业务中却至关重要。
账号安全、运营管理、合规审计... 都离不开它。
Sa-Token 把这些能力封装成了简单的一行代码,拿来即用,这就是好框架的价值。
好的技术选型,能让复杂问题变得简单。
相关文章推荐:
如果这篇文章帮到了你,不妨点个分享给同样需要的朋友吧! 你的每一次支持,都是我持续创作的动力!💪