Exemple #1
0
        public ApiResult Login([FromBody] MemberLoginModel member)
        {
            Argument.ThrowIfNullOrEmpty(member.PhoneNumber, "手机号码");
            Argument.ThrowIfNullOrEmpty(member.Password, "登陆密码");

            var user   = Platform == Platform.Web? _userManager.Find(member.PhoneNumber, member.Password): _userManager.Find(member.PhoneNumber, _securityService.Decrypt(member.Password));
            var result = Login(member.MobileDevice, user, member.OpenId);

            return(result);
        }
Exemple #2
0
        public ApiResult BoundPhoneNumber(string id, [FromBody] BoundPhoneNumberModel member)
        {
            Argument.ThrowIfNullOrEmpty(member.PhoneNumber, "手机号");
            Argument.ThrowIfNullOrEmpty(member.SmsVerifyCode, "手机验证码");
            Argument.ThrowIfNullOrEmpty(member.Password, "密码");

            if (!_smsService.VerifyCode(member.PhoneNumber, member.SmsVerifyCode, MemberCenterModule.Instance, SmsRequestType.BoundPhoneNumber.ToString()))
            {
                throw new WebApiInnerException("0001", "手机短信验证码验证失败");
            }

            var user = _userManager.Find(AuthorizedUser.UserName, Platform != Platform.Web ? _securityService.Decrypt(member.Password) : member.Password);

            if (user != null && user.UserType == UserType.Member)
            {
                if (user.LockoutEnabled)
                {
                    throw new WebApiInnerException("0002", "此用户已经禁止登录");
                }

                //判断是否已经存在此手机号
                var testUser = _userContainer.FindUser(member.PhoneNumber);
                if (testUser != null)
                {
                    throw new WebApiInnerException("0004", "手机号已经注册,无法绑定");
                }

                user.UserName    = member.PhoneNumber;
                user.PhoneNumber = member.PhoneNumber;

                if (!string.IsNullOrWhiteSpace(member.InvitationCode))
                {
                    var referrer = _memberService.FindMemberByInvitationCode(member.InvitationCode);
                    if (referrer != null)
                    {
                        var oldMember = _memberService.FindMemberById(id);
                        if (oldMember == null)
                        {
                            throw new WebApiInnerException("0005", "会员信息不存在");
                        }
                        oldMember.ReferrerId = referrer.Id;

                        var midentityResult = _memberService.UpdateMember(oldMember);
                        if (!midentityResult.Succeeded)
                        {
                            throw new WebApiInnerException("0006", "更新失败:" + midentityResult.Errors.FirstOrDefault());
                        }
                    }
                }
            }
            else
            {
                throw new WebApiInnerException("0003", "密码不正确");
            }

            var identityResult = _userManager.Update(user);

            if (identityResult.Succeeded)
            {
                //更新缓存
                _signals.Trigger(_userContainer.UserChangedSignalName);
                _signals.Trigger($"member_{AuthorizedUser.Id}_changed");
            }
            else
            {
                throw new WebApiInnerException("0007", "手机号绑定失败");
            }
            var result = new ApiResult();

            return(result);
        }