liukangdong
2024-09-29 b2d360d9113b6955287108ca9e90d76a1f3c1419
server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
@@ -16,11 +16,20 @@
package com.doumee.config.Jwt;
import com.alibaba.fastjson.JSONObject;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.Member;
import io.jsonwebtoken.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
/**
 * <p>后台系统jwt token工具类</p>
@@ -44,11 +53,15 @@
    //取值名称
    public static final String UserId_Name = "AppUserId";
    //取值名称
    public static final String MEMBER = "MEMBER";
    public static final String UserType = "UserType";
    //取值名称
    public static final String UserInfo = "UserInfo";
    //加密密钥
    private final static String jwtSecret = "MhAjU9poLf8ko54K25XBDtonaL33vtt1";
    //过期时间(s) 86400L=1天 604800L=7天
    private static final long expire = 86400L;
    //redis过期时间
    private static final Integer redisExpire = 3;
    /**
     * 生成token,根据userId和默认过期时间
@@ -56,7 +69,17 @@
    public static String generateToken(JwtPayLoad jwtPayLoad) {
        Long expiredSeconds = getExpireSeconds();
        final Date expirationDate = new Date(System.currentTimeMillis() + expiredSeconds * 1000);
        return generateToken(jwtPayLoad.getMemberId(), expirationDate, jwtPayLoad.toMap());
        return generateToken(jwtPayLoad.getUserId(), expirationDate, jwtPayLoad.toMap());
    }
    /**
     * 生成token,根据userId和默认过期时间
     */
    public static String generateTokenForZb(Long userId,String userType,String userInfo,RedisTemplate<String,Object> redisTemplate) {
        String tokenKey =  UUID.randomUUID() + "_" + userId;
        redisTemplate.opsForValue().set(userType + "_" +tokenKey,userInfo,redisExpire,TimeUnit.HOURS);
        return tokenKey;
    }
    /**
@@ -77,7 +100,7 @@
    public static String generateTokenOld(JwtPayLoad jwtPayLoad) {
        Long expiredSeconds = getExpireSeconds();
        final Date expirationDate = new Date(System.currentTimeMillis() + expiredSeconds * 1000);
        return generateToken(jwtPayLoad.getMemberId(), expirationDate, jwtPayLoad.toMap());
        return generateToken(jwtPayLoad.getUserId(), expirationDate, jwtPayLoad.toMap());
    }
    /**
@@ -128,7 +151,7 @@
    /**
     * 生成token,根据userId和过期时间
     */
    public static String generateToken(String userId, Date exppiredDate, Map<String, Object> claims) {
    public static String generateToken(Long userId, Date exppiredDate, Map<String, Object> claims) {
        final Date createdDate = new Date();
        String secret = getJwtSecret();
@@ -151,6 +174,8 @@
        }
    }
    /**
     * 获取jwt的payload部分
     */