MrShi
6 天以前 97158794d69fd2beee1bf27577aa7cadea8d847d
server/services/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSONObject;
import com.doumee.core.constants.Constants;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.vo.WebLoginUserVO;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import lombok.extern.slf4j.Slf4j;
@@ -34,23 +35,21 @@
    /**
     * 生成token令牌
     *
     * @param member 令牌中携带的附加信息
     * @param webLoginUser 令牌中携带的附加信息
     * @return 令token牌
     */
    public String generateToken(Member member) {
        if(member == null){
    public String generateToken(WebLoginUserVO webLoginUser) {
        if(webLoginUser == null){
            return  null;
        }
        Map<String,Object> map = new HashMap<>();
        map.put("id",member.getId());
        return generateTokenDo(member);
        return generateTokenDo(webLoginUser);
    }
    public Member getUserInfoByToken(String token) {
    public WebLoginUserVO getUserInfoByToken(String token) {
        try {
            Member member = getClaimsFromToken(token);
            return member;
            WebLoginUserVO userVO = getClaimsFromToken(token);
            return userVO;
        } catch (Exception e) {
           e.printStackTrace();
        }
@@ -97,15 +96,15 @@
     *
     * @return 令牌
     */
    private String generateTokenDo(Member member) {
    private String generateTokenDo(WebLoginUserVO webLoginUser) {
        Map<String, Object> claims = new HashMap<>();
        claims.put("id",member.getId());
        claims.put("id",webLoginUser.getId());
        Date expirationDate = new Date(System.currentTimeMillis() + jwtProperties.getExpiration());
        String token = Jwts.builder().setClaims(claims)
                .setExpiration(expirationDate)
                .signWith(SignatureAlgorithm.HS512, jwtProperties.getSecret())
                .compact();
        redisTemplate.opsForValue().set(Constants.REDIS_TOKEN_KEY+token,JSONObject.toJSONString(member));
        redisTemplate.opsForValue().set(Constants.REDIS_TOKEN_KEY+token,JSONObject.toJSONString(webLoginUser));
        return token;
    }
@@ -116,11 +115,11 @@
     * @param token 令牌
     * @return 数据声明
     */
    private Member getClaimsFromToken(String token) {
        Member claims;
    private WebLoginUserVO getClaimsFromToken(String token) {
        WebLoginUserVO claims;
        try {
            String userInfo = (String) redisTemplate.opsForValue().get(Constants.REDIS_TOKEN_KEY+token);
            claims = JSONObject.toJavaObject(JSONObject.parseObject(userInfo),Member.class);
            claims = JSONObject.toJavaObject(JSONObject.parseObject(userInfo),WebLoginUserVO.class);
        } catch (Exception e) {
            claims = null;
        }