|
@@ -155,44 +155,17 @@ public class MaterialUserServiceImpl implements MaterialUserService {
|
|
|
sysUserRoleRelationDao.delete(wrapperRoleRelation);
|
|
|
sysUserRoleRelationDao.insertBatch(materialAudit.getUser_id(), Arrays.asList(materialAudit.getRole_id()));
|
|
|
|
|
|
- /*
|
|
|
- Token 解析结果:
|
|
|
- Claims claims = jwtUtil.extractAllClaims(token);
|
|
|
- {
|
|
|
- "sub": "8fc878c1-0a67-4cd0-a0de-eced643e5546",
|
|
|
- "userInfo": {
|
|
|
- "id": 1,
|
|
|
- "user_id": 1,
|
|
|
- "username": "admin",
|
|
|
- "last_login_uuid": "8fc878c1-0a67-4cd0-a0de-eced643e5546",
|
|
|
- "is_super": -1,
|
|
|
- "token_expiration": "2025-08-24 14:55:44",
|
|
|
- "target": null,
|
|
|
- "roles": [
|
|
|
- {
|
|
|
- "role_id": 4,
|
|
|
- "role_sign": "MATERIAL_ADMIN",
|
|
|
- "role_name": "素材库-管理员",
|
|
|
- "login_default_page": "/material/materialList"
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- "target": "System",
|
|
|
- "exp": 1756018544
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- Redis Key:backendsys:local:login:token:8fc878c1-0a67-4cd0-a0de-eced643e5546
|
|
|
- Redis Value:
|
|
|
- "\"{\\\"token\\\":\\\"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI4ZmM4NzhjMS0wYTY3LTRjZDAtYTBkZS1lY2VkNjQzZTU1NDYiLCJ1c2VySW5mbyI6eyJpZCI6MSwidXNlcl9pZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsImxhc3RfbG9naW5fdXVpZCI6IjhmYzg3OGMxLTBhNjctNGNkMC1hMGRlLWVjZWQ2NDNlNTU0NiIsImlzX3N1cGVyIjotMSwidG9rZW5fZXhwaXJhdGlvbiI6IjIwMjUtMDgtMjQgMTQ6NTU6NDQiLCJ0YXJnZXQiOm51bGwsInJvbGVzIjpbeyJyb2xlX2lkIjo0LCJyb2xlX3NpZ24iOiJNQVRFUklBTF9BRE1JTiIsInJvbGVfbmFtZSI6Iue0oOadkOW6ky3nrqHnkIblkZgiLCJsb2dpbl9kZWZhdWx0X3BhZ2UiOiIvbWF0ZXJpYWwvbWF0ZXJpYWxMaXN0In1dfSwidGFyZ2V0IjoiU3lzdGVtIiwiZXhwIjoxNzU2MDE4NTQ0fQ.Mz9juWF2sqioaFMAdTJtcoTQONZFfCGDaRuibbVn2Mw\\\",\\\"permission_ids\\\":[\\\"1.1.2\\\",\\\"1.1.3\\\",\\\"1.1.6\\\",\\\"3.2.3.3\\\",\\\"3.5.1\\\",\\\"20\\\",\\\"20.1\\\",\\\"20.1.1\\\",\\\"20.1.2\\\",\\\"20.1.3\\\",\\\"20.1.4\\\",\\\"20.1.5\\\",\\\"20.2\\\",\\\"20.3\\\",\\\"20.4\\\",\\\"20.4.1\\\"]}\""
|
|
|
-
|
|
|
-
|
|
|
- // SecurityUserInfo(id=1, user_id=1, username=admin, last_login_uuid=8fc878c1-0a67-4cd0-a0de-eced643e5546, is_super=-1, token_expiration=2025-08-24 14:55:44, target=null, roles=[{role_id=4, role_sign=MATERIAL_ADMIN, role_name=素材库-管理员, login_default_page=/material/materialList}])
|
|
|
-
|
|
|
- */
|
|
|
- // 实时更新:用户信息/角色/权限 (发送SSE)
|
|
|
- userUtil.syncUpdateUserCatch(userInfo);
|
|
|
- sseUtil.send(userInfo.getUser_id(), new SseResponse(SseResponseEnum.SYSTEM_USER_UPDATE, userInfo).toJsonStr());
|
|
|
+
|
|
|
+ // 重置的过期时间直接给7天
|
|
|
+ Long tokenDurationMilliseconds = userUtil.getTokenDuration(true);
|
|
|
+ Integer tokenDurationHours = Convert.toInt(tokenDurationMilliseconds / 3600000L);
|
|
|
+ // 实时更新缓存: 用户信息
|
|
|
+ SysUserInfo userInfoLasest = sysUserService.selectUserInfo(entity);
|
|
|
+ // 赋加缓存时间 { token_expiration }
|
|
|
+ SysUserInfo userInfoLasestCatch = userUtil.syncUpdateUserCatch(userInfoLasest, tokenDurationHours, true);
|
|
|
+
|
|
|
+ // 发送SSE消息到前端
|
|
|
+ sseUtil.send(userInfoLasestCatch.getUser_id(), new SseResponse(SseResponseEnum.SYSTEM_USER_UPDATE, userInfoLasestCatch).toJsonStr());
|
|
|
|
|
|
return Map.of("user_id", materialAudit.getUser_id());
|
|
|
}
|
|
@@ -242,7 +215,7 @@ public class MaterialUserServiceImpl implements MaterialUserService {
|
|
|
SysUser sysUserDetail = sysUserDao.selectOne(queryWrapper);
|
|
|
if (sysUserDetail != null) {
|
|
|
// [已注册] 返回登录信息 (并且7天免登录)
|
|
|
- SysUserInfo sysUserInfo = sysAuthService.loginSuccess(sysUserDetail.getId(), 1);
|
|
|
+ SysUserInfo sysUserInfo = sysAuthService.loginSuccess(sysUserDetail.getId(), true);
|
|
|
Map<String, Object> response = BeanUtil.beanToMap(sysUserInfo);
|
|
|
response.put("is_register", false);
|
|
|
return response;
|
|
@@ -276,7 +249,7 @@ public class MaterialUserServiceImpl implements MaterialUserService {
|
|
|
sysUserIntegralService.init(registerEntity.getId());
|
|
|
|
|
|
// [DB] 查询用户信息
|
|
|
- SysUserInfo sysUserInfo = sysAuthService.loginSuccess(registerEntity.getId(), 1);
|
|
|
+ SysUserInfo sysUserInfo = sysAuthService.loginSuccess(registerEntity.getId(), true);
|
|
|
Map<String, Object> response = BeanUtil.beanToMap(sysUserInfo);
|
|
|
response.put("is_register", true);
|
|
|
return response;
|