mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-11-09 16:57:16 +08:00
refactor: 使用 Token 作为 WebSocket Session Key
This commit is contained in:
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package top.continew.admin.common.config.websocket;
|
package top.continew.admin.common.config.websocket;
|
||||||
|
|
||||||
import cn.hutool.core.convert.Convert;
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import org.springframework.http.server.ServletServerHttpRequest;
|
import org.springframework.http.server.ServletServerHttpRequest;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -40,7 +39,7 @@ public class CurrentUserProviderImpl implements CurrentUserProvider {
|
|||||||
String token = servletRequest.getParameter("token");
|
String token = servletRequest.getParameter("token");
|
||||||
LoginUser loginUser = LoginHelper.getLoginUser(token);
|
LoginUser loginUser = LoginHelper.getLoginUser(token);
|
||||||
CurrentUser currentUser = new CurrentUser();
|
CurrentUser currentUser = new CurrentUser();
|
||||||
currentUser.setUserId(Convert.toStr(loginUser.getId()));
|
currentUser.setUserId(loginUser.getToken());
|
||||||
return currentUser;
|
return currentUser;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,11 +16,15 @@
|
|||||||
|
|
||||||
package top.continew.admin.auth.service.impl;
|
package top.continew.admin.auth.service.impl;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.lang.tree.Tree;
|
import cn.hutool.core.lang.tree.Tree;
|
||||||
import cn.hutool.core.lang.tree.TreeNodeConfig;
|
import cn.hutool.core.lang.tree.TreeNodeConfig;
|
||||||
import cn.hutool.core.util.*;
|
import cn.hutool.core.util.IdUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.RandomUtil;
|
||||||
|
import cn.hutool.core.util.ReUtil;
|
||||||
import cn.hutool.extra.servlet.JakartaServletUtil;
|
import cn.hutool.extra.servlet.JakartaServletUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
@@ -255,6 +259,9 @@ public class LoginServiceImpl implements LoginService {
|
|||||||
req.setContent(socialRegister.getContent().formatted(user.getNickname()));
|
req.setContent(socialRegister.getContent().formatted(user.getNickname()));
|
||||||
req.setType(MessageTypeEnum.SECURITY);
|
req.setType(MessageTypeEnum.SECURITY);
|
||||||
messageService.add(req, CollUtil.toList(user.getId()));
|
messageService.add(req, CollUtil.toList(user.getId()));
|
||||||
WebSocketUtils.sendMessage(user.getId().toString(), "1");
|
List<String> tokenList = StpUtil.getTokenValueListByLoginId(user.getId());
|
||||||
|
for (String token : tokenList) {
|
||||||
|
WebSocketUtils.sendMessage(token, "1");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user