| | |
| | | |
| | | import cn.hutool.core.lang.Assert; |
| | | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| | | import cn.iocoder.yudao.framework.common.enums.TerminalEnum; |
| | | import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; |
| | | import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; |
| | | import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; |
| | |
| | | import cn.iocoder.yudao.module.system.api.social.SocialUserApi; |
| | | import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO; |
| | | import cn.iocoder.yudao.module.system.api.social.dto.SocialUserRespDTO; |
| | | import cn.iocoder.yudao.module.system.api.social.dto.SocialWxPhoneNumberInfoRespDTO; |
| | | import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; |
| | | import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; |
| | | import cn.iocoder.yudao.module.system.enums.oauth2.OAuth2ClientConstants; |
| | | import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum; |
| | | import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | |
| | | // 创建 Token 令牌,记录登录日志 |
| | | return createTokenAfterLoginSuccess(user, user.getMobile(), LoginLogTypeEnum.LOGIN_SOCIAL, socialUser.getOpenid()); |
| | | } |
| | | |
| | | @Override |
| | | public AppAuthLoginRespVO weixinMiniAppLogin(AppAuthWeixinMiniAppLoginReqVO reqVO) { |
| | | // 获得对应的手机号信息 |
| | | SocialWxPhoneNumberInfoRespDTO phoneNumberInfo = socialClientApi.getWxMaPhoneNumberInfo( |
| | | UserTypeEnum.MEMBER.getValue(), reqVO.getPhoneCode()); |
| | | Assert.notNull(phoneNumberInfo, "获得手机信息失败,结果为空"); |
| | | |
| | | // 获得获得注册用户 |
| | | MemberUserDO user = userService.createUserIfAbsent(phoneNumberInfo.getPurePhoneNumber(), |
| | | getClientIP(), TerminalEnum.WECHAT_MINI_PROGRAM.getTerminal()); |
| | | Assert.notNull(user, "获取用户失败,结果为空"); |
| | | |
| | | // 绑定社交用户 |
| | | String openid = socialUserApi.bindSocialUser(new SocialUserBindReqDTO(user.getId(), getUserType().getValue(), |
| | | SocialTypeEnum.WECHAT_MINI_PROGRAM.getType(), reqVO.getLoginCode(), reqVO.getState())); |
| | | |
| | | // 创建 Token 令牌,记录登录日志 |
| | | return createTokenAfterLoginSuccess(user, user.getMobile(), LoginLogTypeEnum.LOGIN_SOCIAL, openid); |
| | | } |
| | | |
| | | private AppAuthLoginRespVO createTokenAfterLoginSuccess(MemberUserDO user, String mobile, |