From c62ec58c827e780c4fb039f03149884c10ba0c52 Mon Sep 17 00:00:00 2001
From: Fancy <Fancy.fx@outlook.com>
Date: 星期五, 27 十二月 2024 11:16:02 +0800
Subject: [PATCH] parse JWT

---
 pms-parent/pms-web-wechat/src/main/java/com/dy/pmsWechat/login/WeChatService.java |   26 +++++++++++++++++---------
 1 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/pms-parent/pms-web-wechat/src/main/java/com/dy/pmsWechat/login/WeChatService.java b/pms-parent/pms-web-wechat/src/main/java/com/dy/pmsWechat/login/WeChatService.java
index f912145..983e4d9 100644
--- a/pms-parent/pms-web-wechat/src/main/java/com/dy/pmsWechat/login/WeChatService.java
+++ b/pms-parent/pms-web-wechat/src/main/java/com/dy/pmsWechat/login/WeChatService.java
@@ -3,12 +3,14 @@
 import com.alibaba.fastjson2.JSONObject;
 import com.dy.pmsGlobal.daoMp.MpOpenIdMapper;
 import com.dy.pmsGlobal.pojoMp.MpOpenId;
+import com.dy.pmsWechat.util.JwtUtil;
 import com.dy.pmsWechat.util.RestTemplateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -23,6 +25,12 @@
 
     @Value("${wechat.loginUrl}")
     private String loginUrl;
+
+    @Value("${wechat.jwt.secret-key}")
+    private String secretKey;
+
+    @Value("${wechat.jwt.ttl}")
+    private  long  ttlMillis;
 
     private final RestTemplateUtil restTemplateUtil;
     private MpOpenIdMapper mpOpenIdDao;
@@ -44,21 +52,21 @@
         queryParams.put("grant_type", "authorization_code");
         Map<String, String> headerParams = new HashMap<>();
         JSONObject  wxMpUser = restTemplateUtil.get(loginUrl, queryParams, headerParams);
+        String openId = wxMpUser.get("openid").toString();
         //鑾峰彇寰俊淇℃伅娣诲姞鍒版暟鎹簱  //鍏堟牴鎹畂penid鏌ヨ鐢ㄦ埛淇℃伅
-        MpOpenId userInfo = mpOpenIdDao.getInfoByOpenId(wxMpUser.get("openid").toString());
+        MpOpenId userInfo = mpOpenIdDao.getInfoByOpenId(openId);
         if(userInfo == null){ //鏁版嵁搴撴病鏈夋椂娣诲姞鍒版暟鎹簱涓�
             userInfo = new MpOpenId();
-            userInfo.setOpenId(wxMpUser.get("openid").toString());
+            userInfo.setOpenId(openId);
+            userInfo.setCreateTime(new Date());
             mpOpenIdDao.insert(userInfo);
         }
         //鎺堟潈瀹屾垚涔嬪悗锛岃烦杞埌鍏蜂綋鐨勫姛鑳介〉闈�
         //鐢熸垚token,鎸夌収涓�瀹氳鍒欑敓鎴愬瓧绗︿覆锛屽彲浠ュ寘鍚敤鎴蜂俊鎭�
-        String token= JwtHelper.createToken(userInfo.getId(),userInfo.getNickName());
-        //localhost:8080/weixin?a=1&token=222
-        if(returnUrl.indexOf("?")==-1){//鑻eturnUrl涓病鏈夊弬鏁�
-            return "redirect:"+returnUrl+"?token="+token;
-        }else{
-            return "redirect:"+returnUrl+"&token="+token;
-        }
+        //鐧婚檰controller涓敓鎴愶紝杩斿洖缁欏鎴风
+        Map<String, Object> claims = new HashMap<>();
+        claims.put("openId",openId);
+        String token = JwtUtil.createJwt(secretKey,ttlMillis,claims);
+        return new JSONObject().fluentPut("token",token);
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0