feat: 设置页新增登录管理 TAB
- Session 结构体新增 IP、UserAgent、Remark 字段,登录/注册时记录设备信息 - Store 接口新增 ListByUID、DeleteByUIDExclude 方法,MemoryStore 完整实现 - SessionManager 新增 ListByUID、DestroyOtherByUID、UpdateRemark 方法 - 新增 UA 轻量解析器(session/ua.go),提取浏览器/OS/设备类型 - 新增 settings_api_sessions.go,提供列表/踢出/一键踢出/备注 4 个 API - 控制器层声明 sessionManager 最小接口(ISP),SettingsController 注入依赖 - Auth 中间件注入 sid 到 gin context,支持识别当前会话 - 设置页左侧导航增加登录管理入口,tab 白名单新增 sessions - 前端实现设备列表展示(浏览器/OS/设备图标/IP/时间)、当前设备标识、备注输入、踢出按钮、一键踢出 - settings.css 新增会话管理全套样式及响应式适配
This commit is contained in:
@ -14,6 +14,12 @@ type Store interface {
|
||||
// DeleteByUID 删除某用户的所有会话(改密/注销/强制下线时调用)
|
||||
DeleteByUID(uid uint) error
|
||||
|
||||
// DeleteByUIDExclude 删除某用户的所有会话,但保留指定的会话 ID
|
||||
DeleteByUIDExclude(uid uint, excludeSID string) error
|
||||
|
||||
// ListByUID 列出某用户的所有活跃会话
|
||||
ListByUID(uid uint) ([]*Session, error)
|
||||
|
||||
// Cleanup 清理过期会话,返回清理数量(由后台 goroutine 定期调用)
|
||||
Cleanup() int
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user