diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java index 01132f10..29e06743 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.system.controller.admin.auth; +import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; @@ -170,4 +171,10 @@ public class AuthController { return success(authService.miniAppQuickLogin(reqVO)) ; } + @PostMapping("/miniapp_code2Session") + @PermitAll + @Operation(summary = "微信小程序openid", description = "获取微信小程序的openid" ) + public CommonResult miniAppCode2Session(@RequestBody AuthSocialLoginReqVO reqVO) { + return success(authService.miniAppCode2Session(reqVO)) ; + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java index b95e83c0..041f208b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.system.service.auth; +import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.system.controller.admin.auth.vo.*; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; @@ -77,4 +79,11 @@ public interface AdminAuthService { * @return 登陆结果 */ AuthLoginRespVO miniAppQuickLogin(AuthSocialLoginReqVO reqVO) ; + + /** + * 获取微信 获取微信小程序的用户唯一标识 openId + * @param reqVO jscode + * @return 用户唯一标识 + */ + WxMaJscode2SessionResult miniAppCode2Session(AuthSocialLoginReqVO reqVO) ; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java index 5a61df73..e2a038ee 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.system.service.auth; +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; @@ -256,7 +258,6 @@ public class AdminAuthServiceImpl implements AdminAuthService { //获取微信小程序授权手机号 WxMaPhoneNumberInfo wxMaPhoneNumberInfo = socialClientService.getWxMaPhoneNumberInfo(2,reqVO.getCode()) ; String phoneNumber = wxMaPhoneNumberInfo.getPhoneNumber() ; //授权手机号 - phoneNumber = "18611845857" ; String appId = wxMaPhoneNumberInfo.getWatermark().getAppid() ; //小程序的appId final LoginLogTypeEnum logTypeEnum = LoginLogTypeEnum.LOGIN_USERNAME; @@ -285,4 +286,9 @@ public class AdminAuthServiceImpl implements AdminAuthService { return AuthConvert.INSTANCE.convert(accessTokenDO); // return createTokenAfterLoginSuccess(user.getId(), phoneNumber, LoginLogTypeEnum.LOGIN_SOCIAL); } + + @Override + public WxMaJscode2SessionResult miniAppCode2Session(AuthSocialLoginReqVO reqVO) { + return socialClientService.getWxMaJscode2SessionResult(reqVO.getCode()) ; + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientService.java index ea64e049..513e2546 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientService.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.system.service.social; +import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.system.controller.admin.socail.vo.client.SocialClientPageReqVO; @@ -61,6 +62,13 @@ public interface SocialClientService { */ WxMaPhoneNumberInfo getWxMaPhoneNumberInfo(Integer userType, String phoneCode); + /** + * 获取微信小程序的用户唯一标识 openId + * @param jsCode 登录时获取的 code,可通过wx.login获取 + * @return + */ + WxMaJscode2SessionResult getWxMaJscode2SessionResult(String jsCode) ; + // =================== 客户端管理 =================== /** diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.java index 8ee90920..36df66ad 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.service.social; import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl; +import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.binarywang.wx.miniapp.config.impl.WxMaRedisBetterConfigImpl; import cn.hutool.core.bean.BeanUtil; @@ -336,4 +337,11 @@ public class SocialClientServiceImpl implements SocialClientService { return socialClientMapper.selectPage(pageReqVO); } + @SneakyThrows + @Override + public WxMaJscode2SessionResult getWxMaJscode2SessionResult(String jsCode) { + WxMaService wxMaService = getWxMaService(2) ; + WxMaJscode2SessionResult result = wxMaService.jsCode2SessionInfo(jsCode) ; + return result ; + } }