Explorar el Código

修复jwt实时会员信息 - 2

Jacky Wong hace 5 años
padre
commit
b0ee652a71

+ 4 - 1
member-weixin-service/src/main/java/com/liangjian/dataplatform/member/controller/WeixinController.java

@@ -132,7 +132,10 @@ public class WeixinController extends DreamMsgControllerAdapter {
         if(jwtTokenObject == null) {
             return ResultObject.error("未登录");
         } else {
-            return ResultObject.success(jwtTokenObject.getObject());
+            var opt = iWeixinUserInfoService.findByOpenid(jwtTokenObject.getObject().getOpenid());
+            return opt
+                    .map(i -> ResultObject.success(i))
+                    .orElseGet(() -> ResultObject.error("发生未知错误"));
         }
     }
 

+ 8 - 15
member-weixin-service/src/main/java/com/liangjian/dataplatform/member/interceptor/WeixinInterceptor.java

@@ -54,22 +54,15 @@ public class WeixinInterceptor implements HandlerInterceptor {
             }
         }
 
-        //重新获取并放进threadlocal里
-        Optional<WeixinUserInfo> userOpt = iWeixinUserInfoService.findByOpenid(tokenObject.getObject().getOpenid());
-        userOpt.ifPresent(user -> {
-            JwtTokenObject<WeixinUserInfo> newTokenObject = new JwtTokenObject<>();
-            newTokenObject.setRemark(tokenObject.getRemark());
-            newTokenObject.setSignTime(System.currentTimeMillis());
-            newTokenObject.setObject(userOpt.get());
-            WeixinJwtTokenGetter.UserInfo.set(newTokenObject);
+        //放进threadlocal里
+        WeixinJwtTokenGetter.UserInfo.set(tokenObject);
 
-            //重新签发
-            String newToken = iWeixinUserInfoService.encodeJwt(user, tokenObject.getRemark())
-                    .orElseGet(() -> {
-                        throw new RuntimeException("发生未知错误");
-                    });
-            response.addHeader("jwt", newToken);
-        });
+        //重新签发
+        String newToken = iWeixinUserInfoService.encodeJwt(tokenObject.getObject(), tokenObject.getRemark())
+                .orElseGet(() -> {
+                    throw new RuntimeException("发生未知错误");
+                });
+        response.addHeader("jwt", newToken);
         return true;
     }