diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java index 7a2b9fcf6..4ee0cdb51 100644 --- a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java +++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java @@ -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 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 getLoginUserByLoginId(Object loginId) { + return getLoginUserByLoginIdAndDeviceType(loginId, null); + } /** * 获取用户id */