From 7eda6161ea22d32d4cde56f3f5bf33ee0d735fee Mon Sep 17 00:00:00 2001 From: "LIONCITYS\\lioncity" <18026623439@163.com> Date: Tue, 3 Nov 2020 22:14:40 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=91=E5=AE=9A=E6=89=8B=E6=9C=BA=E5=8F=B7?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BA=E7=99=BB=E9=99=86=E6=97=B6=E7=BC=93?= =?UTF-8?q?=E5=AD=98session=5Fkey(=E7=94=A8=E6=88=B7=E5=9C=A8=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E6=B4=BB=E8=B7=83,=E5=88=99session=5Fkey?= =?UTF-8?q?=E4=B8=80=E7=9B=B4=E6=9C=89=E6=95=88),=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=89=8B=E6=9C=BA=E5=8F=B7=E7=9B=B4=E6=8E=A5=E5=8F=96=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../co/yixiang/modules/services/AuthService.java | 2 ++ .../rest/controller/WxMaUserController.java | 15 +++++++-------- .../java/co/yixiang/constant/ShopConstants.java | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java b/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java index 50244e93..08070aa3 100644 --- a/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java +++ b/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java @@ -97,6 +97,7 @@ public class AuthService { } WxMaService wxMaService = WxMaConfiguration.getWxMaService(); WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(code); + WxMaUserInfo wxMpUser = wxMaService.getUserService() .getUserInfo(session.getSessionKey(), encryptedData, iv); String openid = wxMpUser.getOpenId(); @@ -157,6 +158,7 @@ public class AuthService { userService.updateById(yxUser); } userService.setSpread(spread, returnUser.getUid()); + redisUtils.set(ShopConstants.YSHOP_MINI_SESSION_KET + yxUser.getUid(), session.getSessionKey()); return returnUser; } catch (WxErrorException e) { e.printStackTrace(); diff --git a/yshop-app/src/main/java/co/yixiang/modules/wechat/rest/controller/WxMaUserController.java b/yshop-app/src/main/java/co/yixiang/modules/wechat/rest/controller/WxMaUserController.java index c0d893ac..0d0adc00 100644 --- a/yshop-app/src/main/java/co/yixiang/modules/wechat/rest/controller/WxMaUserController.java +++ b/yshop-app/src/main/java/co/yixiang/modules/wechat/rest/controller/WxMaUserController.java @@ -14,6 +14,7 @@ import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.hutool.core.util.StrUtil; import co.yixiang.api.ApiResult; import co.yixiang.api.YshopException; +import co.yixiang.constant.ShopConstants; import co.yixiang.logging.aop.log.AppLog; import co.yixiang.common.bean.LocalUser; import co.yixiang.common.interceptor.AuthCheck; @@ -22,7 +23,9 @@ import co.yixiang.modules.user.service.YxUserService; import co.yixiang.modules.wechat.rest.param.BindPhoneParam; import co.yixiang.modules.wechat.rest.param.WxPhoneParam; import co.yixiang.modules.mp.config.WxMaConfiguration; +import co.yixiang.utils.RedisUtil; import co.yixiang.utils.RedisUtils; +import co.yixiang.utils.SecurityUtils; import co.yixiang.utils.ShopKeyUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,17 +97,13 @@ public class WxMaUserController { WxMaService wxMaService = WxMaConfiguration.getWxMaService(); String phone = ""; try { - WxMaJscode2SessionResult session = wxMaService.getUserService() - .getSessionInfo(param.getCode()); - - // 解密 - WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService() - .getPhoneNoInfo(session.getSessionKey(), param.getEncryptedData(), param.getIv()); - + String sessionKey = RedisUtil.get(ShopConstants.YSHOP_MINI_SESSION_KET+ user.getUid()).toString(); + WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService() + .getPhoneNoInfo(sessionKey, param.getEncryptedData(), param.getIv()); phone = phoneNoInfo.getPhoneNumber(); user.setPhone(phone); userService.updateById(user); - } catch (WxErrorException e) { + } catch (Exception e) { e.printStackTrace(); throw new YshopException("绑定失败"); } diff --git a/yshop-common/src/main/java/co/yixiang/constant/ShopConstants.java b/yshop-common/src/main/java/co/yixiang/constant/ShopConstants.java index fde29bd8..9da21228 100644 --- a/yshop-common/src/main/java/co/yixiang/constant/ShopConstants.java +++ b/yshop-common/src/main/java/co/yixiang/constant/ShopConstants.java @@ -173,5 +173,5 @@ public interface ShopConstants { String DEFAULT_UNI_H5_URL = "https://h5.yixiang.co"; - + String YSHOP_MINI_SESSION_KET = "yshop:session_key:"; }