From 2c5f5e7091330a748257baab82e81038a0d22816 Mon Sep 17 00:00:00 2001 From: Fancy <Fancy.fx@outlook.com> Date: 星期四, 26 十二月 2024 10:25:30 +0800 Subject: [PATCH] JWT have some error --- pms-parent/pms-web-wechat/src/main/java/com/dy/pmsWechat/login/WeChatService.java | 28 ++++++++++++++++++++++++++-- 1 files changed, 26 insertions(+), 2 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 ecc98e2..f912145 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 @@ -1,7 +1,10 @@ package com.dy.pmsWechat.login; import com.alibaba.fastjson2.JSONObject; +import com.dy.pmsGlobal.daoMp.MpOpenIdMapper; +import com.dy.pmsGlobal.pojoMp.MpOpenId; 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; @@ -22,9 +25,15 @@ private String loginUrl; private final RestTemplateUtil restTemplateUtil; + private MpOpenIdMapper mpOpenIdDao; public WeChatService(RestTemplateUtil restTemplateUtil) { this.restTemplateUtil = restTemplateUtil; + } + + @Autowired + private void setMpOpenIdDao(MpOpenIdMapper mpOpenIdDao) { + this.mpOpenIdDao = mpOpenIdDao; } public JSONObject login(String code) throws IOException { @@ -34,7 +43,22 @@ queryParams.put("js_code", code); queryParams.put("grant_type", "authorization_code"); Map<String, String> headerParams = new HashMap<>(); - return restTemplateUtil.get(loginUrl, queryParams, headerParams); - + JSONObject wxMpUser = restTemplateUtil.get(loginUrl, queryParams, headerParams); + //鑾峰彇寰俊淇℃伅娣诲姞鍒版暟鎹簱 //鍏堟牴鎹畂penid鏌ヨ鐢ㄦ埛淇℃伅 + MpOpenId userInfo = mpOpenIdDao.getInfoByOpenId(wxMpUser.get("openid").toString()); + if(userInfo == null){ //鏁版嵁搴撴病鏈夋椂娣诲姞鍒版暟鎹簱涓� + userInfo = new MpOpenId(); + userInfo.setOpenId(wxMpUser.get("openid").toString()); + 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; + } } } \ No newline at end of file -- Gitblit v1.8.0