微信小程序openid

This commit is contained in:
Echo 2024-02-23 18:47:49 +08:00
parent 1f4ef5963a
commit ca3d8924a0
5 changed files with 39 additions and 1 deletions

View File

@ -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<WxMaJscode2SessionResult> miniAppCode2Session(@RequestBody AuthSocialLoginReqVO reqVO) {
return success(authService.miniAppCode2Session(reqVO)) ;
}
}

View File

@ -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) ;
}

View File

@ -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()) ;
}
}

View File

@ -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) ;
// =================== 客户端管理 ===================
/**

View File

@ -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 ;
}
}