Ejemplo n.º 1
0
        public async Task AppLogin_Test(string phone, string openId, AppRegisterOrLoginInput.FromEnum?from, string unionId)
        {
            var smsCode = await _smsVerificationCodeManager.Create(phone, "RegisterOrLogin");

            await _smsVerificationCodeManager.VerifyCodeAndShowUserFriendlyException(phone, smsCode, "RegisterOrLogin");

            var userInput = new AppRegisterOrLoginInput()
            {
                Phone   = phone,
                Code    = smsCode,
                OpenId  = openId,
                From    = from,
                UnionId = unionId,
            };
            //验证登陆逻辑
            var loginOutput = await _usersAppService.AppRegisterOrLogin(userInput);

            loginOutput.ShouldNotBeNull();
        }
Ejemplo n.º 2
0
        public async Task <AppRegisterOrLoginOutput> AppRegisterOrLogin(AppRegisterOrLoginInput input)
        {
            #region 验证码验证

            using (var unitOfWork = _unitOfWorkManager.Begin())
            {
                var codeValid =
                    await _smsVerificationCodeManager.VerifyCode(input.Phone, input.Code, "RegisterOrLogin");

                if (!codeValid)
                {
                    throw new UserFriendlyException("短信验证码不正确或已过期!");
                }
            }

            #endregion

            {
                OpenIdPlatforms?from = null;
                switch (input.From)
                {
                case AppRegisterOrLoginInput.FromEnum.WeChatMiniProgram:
                    from = OpenIdPlatforms.WechatMiniProgram;
                    break;

                case AppRegisterOrLoginInput.FromEnum.WeChat:
                    from = OpenIdPlatforms.WeChat;
                    break;

                case null:
                    break;

                default:
                    break;
                }

                return(await RegisterOrLogin(input.Phone, input.TrueName, input.OpenId, input.UnionId, from));
            }
        }