| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.IOException; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.*; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | @Component |
| | |
| | | @Resource |
| | | private JwtProperties jwtProperties; |
| | | |
| | | //redis过期时间 |
| | | private static final Integer redisExpire = 365; |
| | | /** |
| | | * 生成token令牌 |
| | | * |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 生成token信息(同一用户仅保留一个有效token) |
| | | * @param userId |
| | | * @param userType 用户类型 0=会员;1=司机;2=店铺 |
| | | * @param userInfo |
| | | * @param redisTemplate |
| | | * @return |
| | | */ |
| | | public static String generateTokenForRedis(Integer userId, Integer userType, String userInfo, RedisTemplate<String,Object> redisTemplate) { |
| | | // 删除该用户之前登录的token |
| | | String userTokenMappingKey = Constants.REDIS_TOKEN_KEY + "user_" + userType + "_" + userId; |
| | | String oldToken = (String) redisTemplate.opsForValue().get(userTokenMappingKey); |
| | | if (StringUtils.isNotBlank(oldToken)) { |
| | | redisTemplate.delete(Constants.REDIS_TOKEN_KEY + oldToken); |
| | | } |
| | | // 生成新token |
| | | String tokenKey = userType +""+ UUID.randomUUID() + "_" + userId; |
| | | redisTemplate.opsForValue().set(Constants.REDIS_TOKEN_KEY + tokenKey, userInfo, redisExpire, TimeUnit.DAYS); |
| | | // 记录用户与token的映射关系 |
| | | redisTemplate.opsForValue().set(userTokenMappingKey, tokenKey, redisExpire, TimeUnit.DAYS); |
| | | return tokenKey; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 刷新令牌 |
| | | * |