feat(session): 实现同平台抢登互踢功能,优化会话踢下线逻辑

新增同平台会话踢下线能力,将iOS/Android/mobile归为同一移动分组,web仅匹配web;扩展会话存储接口支持按平台、带原因踢除会话,同步更新集群广播逻辑与各调用点,统一传递踢下线原因参数
This commit is contained in:
Austin
2026-09-16 10:23:27 +08:00
parent dbb0a06db0
commit 4280b535c2
6 changed files with 124 additions and 9 deletions
+2 -2
View File
@@ -437,7 +437,7 @@ func executeKafkaUserGovernanceCommand(tenantID types.TenantID, envelope kafkaEn
}
evicted := 0
if globals.sessionStore != nil {
evicted = globals.sessionStore.EvictUserDevice(target, deviceID)
evicted = globals.sessionStore.EvictUserDevice(target, deviceID, "admin_device_kick")
}
publishRealtimeEvictDevice(tenantID, target, deviceID, "admin_device_kick")
if store.Devices != nil {
@@ -500,7 +500,7 @@ func executeKafkaUserPasswordResetCommand(tenantID types.TenantID, payload admin
func evictUserSessions(tenantID types.TenantID, uid types.Uid) {
if globals.sessionStore != nil {
globals.sessionStore.EvictUser(uid, "")
globals.sessionStore.EvictUser(uid, "", "admin_user_evict")
}
publishRealtimeEvictUser(tenantID, uid, "admin_user_evict", "")
}