mirror of
https://gitee.com/likeadmin/likeadmin_java.git
synced 2026-05-23 23:19:36 +08:00
处理多端登录问题
This commit is contained in:
@@ -14,6 +14,9 @@ public class AdminConfig {
|
||||
// 令牌缓存键
|
||||
public static final String backstageTokenKey = "backstage:token:";
|
||||
|
||||
// 令牌的集合
|
||||
public static final String backstageTokenSet = "backstage:token:set:";
|
||||
|
||||
// 免登录验证
|
||||
public static String[] notLoginUri = new String[]{
|
||||
"system:login", // 登录接口
|
||||
|
||||
@@ -44,7 +44,7 @@ class SystemAuthDeptServiceImpl implements ISystemAuthDeptService {
|
||||
List<SystemAuthDept> systemAuthDeptList = systemAuthDeptMapper.selectList(new QueryWrapper<SystemAuthDept>()
|
||||
.gt("pid", 0)
|
||||
.eq("is_delete", 0)
|
||||
.orderByDesc((Arrays.asList("id", "sort"))));
|
||||
.orderByDesc((Arrays.asList("sort", "id"))));
|
||||
|
||||
List<SystemAuthDeptVo> adminVoArrayList = new ArrayList<>();
|
||||
for (SystemAuthDept systemAuthDept : systemAuthDeptList) {
|
||||
@@ -73,7 +73,7 @@ class SystemAuthDeptServiceImpl implements ISystemAuthDeptService {
|
||||
queryWrapper.orderByAsc(Arrays.asList("sort", "id"));
|
||||
queryWrapper.select(SystemAuthDept.class, info ->
|
||||
!info.getColumn().equals("is_delete") &&
|
||||
!info.getColumn().equals("delete_time"));
|
||||
!info.getColumn().equals("delete_time"));
|
||||
|
||||
systemAuthDeptMapper.setSearch(queryWrapper, params, new String[]{
|
||||
"like:name:str",
|
||||
|
||||
@@ -19,9 +19,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 系统登录服务实现类
|
||||
@@ -76,8 +74,18 @@ public class SystemLoginServiceImpl implements ISystemLoginService {
|
||||
sysAdmin.setLastLoginTime(System.currentTimeMillis() / 1000);
|
||||
systemAuthAdminMapper.updateById(sysAdmin);
|
||||
|
||||
// 缓存登录信息
|
||||
// 非多处登录
|
||||
String token = ToolsUtil.makeToken();
|
||||
if (sysAdmin.getIsMultipoint() == 0) {
|
||||
Set<Object> ts = RedisUtil.sGet(AdminConfig.backstageTokenSet + sysAdmin.getId());
|
||||
for (Object t: ts) {
|
||||
RedisUtil.del(t.toString());
|
||||
}
|
||||
RedisUtil.del(AdminConfig.backstageTokenSet + sysAdmin.getId());
|
||||
RedisUtil.sSet(AdminConfig.backstageTokenSet + sysAdmin.getId(), token);
|
||||
}
|
||||
|
||||
// 缓存登录信息
|
||||
RedisUtil.set(AdminConfig.backstageTokenKey+token, sysAdmin.getId(), 7200);
|
||||
iSystemAuthAdminService.cacheAdminUserByUid(sysAdmin.getId());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user