del
This commit is contained in:
@@ -1,16 +0,0 @@
|
|||||||
-- 创建刷新令牌表
|
|
||||||
CREATE TABLE IF NOT EXISTS `refresh_token` (
|
|
||||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
|
||||||
`account_id` bigint(20) NOT NULL COMMENT '账号ID',
|
|
||||||
`device_id` varchar(100) DEFAULT NULL COMMENT '设备ID',
|
|
||||||
`token` varchar(255) NOT NULL COMMENT '刷新令牌',
|
|
||||||
`expire_time` datetime NOT NULL COMMENT '过期时间',
|
|
||||||
`revoked` char(1) NOT NULL DEFAULT '0' COMMENT '是否已撤销(0正常 1撤销)',
|
|
||||||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
||||||
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE KEY `uk_token` (`token`),
|
|
||||||
KEY `idx_account_id` (`account_id`),
|
|
||||||
KEY `idx_device_id` (`device_id`),
|
|
||||||
KEY `idx_expire_time` (`expire_time`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='刷新令牌表';
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
-- 用户设备会话管理表
|
|
||||||
CREATE TABLE `user_device_session` (
|
|
||||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
||||||
`username` varchar(50) NOT NULL COMMENT '用户名',
|
|
||||||
`device_id` varchar(100) NOT NULL COMMENT '设备ID(基于主板序列号生成)',
|
|
||||||
`device_name` varchar(100) DEFAULT NULL COMMENT '设备名称',
|
|
||||||
`device_type` varchar(50) DEFAULT 'PC' COMMENT '设备类型',
|
|
||||||
`os_name` varchar(50) DEFAULT NULL COMMENT '操作系统',
|
|
||||||
`os_version` varchar(50) DEFAULT NULL COMMENT '系统版本',
|
|
||||||
`ip_address` varchar(50) DEFAULT NULL COMMENT 'IP地址',
|
|
||||||
`hostname` varchar(100) DEFAULT NULL COMMENT '主机名',
|
|
||||||
`first_login_time` datetime DEFAULT NULL COMMENT '首次登录时间',
|
|
||||||
`last_active_time` datetime DEFAULT NULL COMMENT '最后活跃时间',
|
|
||||||
`online_status` char(1) DEFAULT '0' COMMENT '在线状态(0离线 1在线)',
|
|
||||||
`login_count` bigint(20) DEFAULT 1 COMMENT '登录次数',
|
|
||||||
`token_hash` varchar(64) DEFAULT NULL COMMENT 'JWT令牌哈希(用于识别)',
|
|
||||||
`status` char(1) DEFAULT '0' COMMENT '设备状态(0正常 1已踢出 2已禁用)',
|
|
||||||
`expire_time` datetime DEFAULT NULL COMMENT '过期时间',
|
|
||||||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
||||||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
UNIQUE KEY `uk_username_device` (`username`, `device_id`),
|
|
||||||
KEY `idx_username` (`username`),
|
|
||||||
KEY `idx_device_id` (`device_id`),
|
|
||||||
KEY `idx_token_hash` (`token_hash`),
|
|
||||||
KEY `idx_online_status` (`online_status`),
|
|
||||||
KEY `idx_last_active_time` (`last_active_time`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户设备会话管理表';
|
|
||||||
|
|
||||||
-- 插入测试数据
|
|
||||||
INSERT INTO `user_device_session` (`username`, `device_id`, `device_name`, `device_type`, `os_name`, `os_version`, `ip_address`, `hostname`, `first_login_time`, `last_active_time`, `online_status`, `login_count`, `status`) VALUES
|
|
||||||
('admin', 'DEVICE-ABC123DEF456', 'Windows 工作站', 'PC', 'Windows 11', '10.0.22000', '192.168.1.100', 'DESKTOP-ADMIN', NOW(), NOW(), '1', 1, '0'),
|
|
||||||
('admin', 'DEVICE-XYZ789GHI012', 'MacBook Pro', 'PC', 'Windows 10', '10.0.19045', '192.168.1.101', 'LAPTOP-ADMIN', DATE_SUB(NOW(), INTERVAL 2 DAY), DATE_SUB(NOW(), INTERVAL 1 DAY), '0', 5, '0'),
|
|
||||||
('testuser', 'DEVICE-QWE456RTY789', 'Ubuntu 桌面', 'PC', 'Windows 11', '10.0.22000', '192.168.1.102', 'UBUNTU-TEST', DATE_SUB(NOW(), INTERVAL 1 HOUR), DATE_SUB(NOW(), INTERVAL 30 MINUTE), '1', 3, '0');
|
|
||||||
|
|
||||||
-- 创建定时清理过期设备的事件(可选)
|
|
||||||
-- DELIMITER $$
|
|
||||||
-- CREATE EVENT IF NOT EXISTS `clean_expired_devices`
|
|
||||||
-- ON SCHEDULE EVERY 1 DAY
|
|
||||||
-- STARTS CURRENT_TIMESTAMP
|
|
||||||
-- DO
|
|
||||||
-- BEGIN
|
|
||||||
-- DELETE FROM user_device_session
|
|
||||||
-- WHERE (expire_time IS NOT NULL AND expire_time < NOW())
|
|
||||||
-- OR (online_status = '0' AND last_active_time < DATE_SUB(NOW(), INTERVAL 7 DAY));
|
|
||||||
-- END$$
|
|
||||||
-- DELIMITER ;
|
|
||||||
|
|
||||||
-- 设置事件调度器开启(如果使用事件)
|
|
||||||
-- SET GLOBAL event_scheduler = ON;
|
|
||||||
Reference in New Issue
Block a user