| | |
| | | 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> |
| | |
| | | //取值名称 |
| | | 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和默认过期时间 |
| | |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | |
| | | 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()); |
| | | } |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 生成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(); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取jwt的payload部分 |
| | | */ |