diff --git a/src/main/java/com/sczx/user/util/JwtUtil.java b/src/main/java/com/sczx/user/util/JwtUtil.java index 588028b..3d46b0a 100644 --- a/src/main/java/com/sczx/user/util/JwtUtil.java +++ b/src/main/java/com/sczx/user/util/JwtUtil.java @@ -1,5 +1,6 @@ package com.sczx.user.util; +import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Maps; import com.sczx.user.dto.SimpleUserInfoDTO; import io.jsonwebtoken.JwtException; @@ -42,7 +43,8 @@ public class JwtUtil { // 支持自定义 claims 的 generateToken 方法 public String generateToken(SimpleUserInfoDTO simpleUserInfoDTO, String subject){ Map claims = Maps.newHashMap(); - claims.put("userInfo", simpleUserInfoDTO); + String userInfoJson = JSONObject.toJSONString(simpleUserInfoDTO); + claims.put("userInfo", userInfoJson); return Jwts.builder() .setClaims(claims) // 设置自定义 claims .setSubject(subject) @@ -116,8 +118,9 @@ public class JwtUtil { String authHeader = getAuthorizationHeader(); if (authHeader != null && authHeader.startsWith("Bearer ")) { String token = authHeader.substring(7); + String userInfoJson = getClaim(token, "userInfo", String.class); // 进行token验证等操作 - return getClaim(token, "userInfo", SimpleUserInfoDTO.class); + return JSONObject.parseObject(userInfoJson, SimpleUserInfoDTO.class); }else { throw new RuntimeException("token不存在"); }