Pre Merge pull request !676 from chengliejian/获取LoginUser基于loginId

This commit is contained in:
chengliejian 2025-04-30 03:59:26 +00:00 committed by Gitee
commit c2055cd8d7
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -1,11 +1,13 @@
package org.dromara.common.satoken.utils;
import cn.dev33.satoken.session.SaSession;
import cn.dev33.satoken.stp.SaLoginModel;
import cn.dev33.satoken.stp.StpUtil;
import cn.dev33.satoken.stp.parameter.SaLoginParameter;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.dromara.common.core.constant.SystemConstants;
@ -84,6 +86,27 @@ public class LoginHelper {
return (T) session.get(LOGIN_USER_KEY);
}
/**
* 获取LoginUser基于loginId和deviceType
*/
public static <T extends LoginUser> T getLoginUserByLoginIdAndDeviceType(Object loginId,String deviceType) {
String value = StpUtil.getTokenValueByLoginId(loginId,deviceType);
if (StrUtil.isBlank(value)){
return null;
}
SaSession session = StpUtil.getTokenSessionByToken(value);
if (ObjectUtil.isNull(session)) {
return null;
}
return (T) session.get(LOGIN_USER_KEY);
}
/**
* 获取LoginUser基于loginId
*/
public static <T extends LoginUser> T getLoginUserByLoginId(Object loginId) {
return getLoginUserByLoginIdAndDeviceType(loginId, null);
}
/**
* 获取用户id
*/