企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
``` /** * 每次被顶下线时触发 */ @Override public void doReplaced(String loginType, Object loginId, String tokenValue) { System.out.println("<被顶下线>监听器:" + "用户:" + loginId); // 获取参数 SatokenUser satokenUser = SatokenUserRedisCache.getSatokenUserByToken(tokenValue); // 判断 if (ObjectUtil.isNotNull(satokenUser)) { // 强制注销 StpUtil.logout(satokenUser.getUserId(), satokenUser.getLoginShebeiType()); // 删除redis缓存 SatokenUserRedisCache.delByToken(tokenValue); // 创建WebSocket消息模型对象 WebSocketMsgModel webSocketMsg = new WebSocketMsgModel(); // 赋值 webSocketMsg.setSendUserId(IdWorker.getIdStr()); webSocketMsg.setSendTime(DateUtil.now()); webSocketMsg.setToUserId(Convert.toStr(satokenUser.getUserId())); webSocketMsg.setMsgTitle("账号多地同时登录"); webSocketMsg.setMsgType(MsgTypeEnum.ACCOUNT_DUODI_LOGIN.getCode()); webSocketMsg.setMsgContent("系统检测到:您的账号存在多处登录,为了账号安全请您及时检查或修改密码"); webSocketMsg.setExtraInfo(tokenValue); // webSocket发送通知 WebSocketUtil.sendToUser(JSONUtil.toJsonStr(webSocketMsg)); } }