| | |
| | | package com.ks.daylucky.util; |
| | | |
| | | import com.ks.daylucky.pojo.DO.UserInfo; |
| | | import com.ks.daylucky.pojo.DTO.TokenDTO; |
| | | import com.ks.daylucky.pojo.DTO.TokenParseResultDTO; |
| | | import com.ks.lucky.pojo.DO.BaseUser; |
| | | import org.yeshi.utils.StringUtil; |
| | | import org.yeshi.utils.encrypt.AESUtil; |
| | | |
| | | import java.util.List; |
| | | |
| | | public class UserInfoUtil { |
| | | |
| | | private final static String TOKEN_KEY = "@2020_Ks@8#8!!@#"; |
| | | |
| | | |
| | | /** |
| | | * 获取用户唯一标识 |
| | |
| | | return null; |
| | | } |
| | | |
| | | public static TokenDTO getToken(Long uid) { |
| | | //用户ID#到期时间戳 |
| | | //有效期为12小时 |
| | | long expireTime = System.currentTimeMillis() + 1000 * 60 * 60L * 12; |
| | | String tokenSource = String.format("%s#%s", uid + "", expireTime); |
| | | return new TokenDTO(AESUtil.encrypt(tokenSource, TOKEN_KEY), expireTime); |
| | | } |
| | | |
| | | /** |
| | | * 获取token的状态 |
| | | * |
| | | * @param token |
| | | * @return |
| | | */ |
| | | public static TokenParseResultDTO parseToken(String token) { |
| | | String result = AESUtil.decrypt(token, TOKEN_KEY); |
| | | if (StringUtil.isNullOrEmpty(result)) { |
| | | return new TokenParseResultDTO(TokenParseResultDTO.TOKEN_STATE_ERROR, null); |
| | | } |
| | | long time = Long.parseLong(result.split("#")[1]); |
| | | long uid = Long.parseLong(result.split("#")[0]); |
| | | |
| | | if (time < System.currentTimeMillis()) { |
| | | return new TokenParseResultDTO(TokenParseResultDTO.TOKEN_STATE_OUT_DATE, null); |
| | | } |
| | | |
| | | return new TokenParseResultDTO(TokenParseResultDTO.TOKEN_STATE_VALID, uid); |
| | | } |
| | | |
| | | public static BaseUser[] getBaseUserList(List<? extends BaseUser> list) { |
| | | BaseUser[] users = new BaseUser[list.size()]; |
| | | list.toArray(users); |
| | | return users; |
| | | } |
| | | |
| | | |
| | | } |