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