mitao
2024-08-24 403fbe8fa8d3df96d692ad41ffa1c300b0db5493
xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/service/TokenService.java
@@ -1,11 +1,5 @@
package com.xinquan.common.security.service;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.xinquan.common.core.constant.CacheConstants;
import com.xinquan.common.core.constant.SecurityConstants;
import com.xinquan.common.core.utils.JwtUtils;
@@ -16,6 +10,13 @@
import com.xinquan.common.redis.service.RedisService;
import com.xinquan.common.security.utils.SecurityUtils;
import com.xinquan.system.api.model.LoginUser;
import com.xinquan.system.api.model.WXLoginUser;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
 * token验证处理
@@ -166,4 +167,36 @@
    {
        return ACCESS_TOKEN + token;
    }
    public Map<String, Object> createToken4WXLoginUser(WXLoginUser wxLoginUser) {
        LoginUser loginUser = new LoginUser();
        // Jwt存储信息
        Map<String, Object> claimsMap = new HashMap<String, Object>();
        // 接口返回信息
        Map<String, Object> rspMap = new HashMap<String, Object>();
        // 用户为空只返回openid
        rspMap.put("cellPhone", "");
        rspMap.put("access_token", "");
        if (wxLoginUser.getSysUser() != null) {
            loginUser.setSysUser(wxLoginUser.getSysUser());
            String token = IdUtils.fastUUID();
            Long userId = loginUser.getSysUser().getUserId();
            String userName = loginUser.getSysUser().getUserName();
            loginUser.setToken(token);
            loginUser.setUserid(userId);
            loginUser.setIpaddr(IpUtils.getIpAddr());
            refreshToken(loginUser);
            claimsMap.put(SecurityConstants.USER_KEY, token);
            claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
            claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
            if (StringUtils.isNotBlank(wxLoginUser.getCellPhone())) {
                rspMap.put("cellPhone", wxLoginUser.getCellPhone());
            } else {
                rspMap.put("cellPhone", "");
            }
            rspMap.put("access_token", JwtUtils.createToken(claimsMap));
            rspMap.put("expires_in", expireTime);
        }
        return rspMap;
    }
}