heheng
2025-06-10 db8242513644b246a30222663ef20e21f1e7c7ce
exam-framework/src/main/java/com/gkhy/exam/framework/web/service/TokenService.java
@@ -1,9 +1,11 @@
package com.gkhy.exam.framework.web.service;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.crypto.digest.DigestUtil;
import com.gkhy.exam.common.api.ResultCode;
import com.gkhy.exam.common.constant.CacheConstant;
import com.gkhy.exam.common.domain.model.LoginUser;
import com.gkhy.exam.common.domain.model.LoginUserDetails;
import com.gkhy.exam.common.exception.ApiException;
import com.gkhy.exam.common.utils.RedisUtils;
import com.gkhy.exam.common.utils.StringUtils;
@@ -40,6 +42,8 @@
    protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND;
    private static final Long MILLIS_MINUTE_TEN = 20 * MILLIS_MINUTE;
    @Autowired
    private RedisUtils redisUtils;
@@ -258,5 +262,26 @@
        }
    }
    /**
     * 设置用户身份信息
     */
    public void setLoginUser(LoginUserDetails loginUser)
    {
        if (ObjectUtil.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken()))
        {
            refreshToken(loginUser);
        }
    }
    /**
     * 刷新令牌有效期
     *
     * @param loginUser 登录信息
     */
    public void refreshToken(LoginUserDetails loginUser)
    {
//        loginUser.setExpireTime(loginUser.getExpireTime()+EXPIRATION);
        // 根据uuid将loginUser缓存
        String userKey = getTokenKey(loginUser.getToken());
        redisUtils.set(userKey, loginUser, EXPIRATION, TimeUnit.MINUTES);
    }
}