コード例 #1
0
        public async Task <ApiTokenResult> MobilePassswordRegister(MobilePassswordValidationCodeRegisterInput input)
        {
            var returnResult = new ApiTokenResult();
            var verifyMobileValidationCodeInput = new VerifyMobileValidationCodeInput
            {
                Mobile         = input.Mobile,
                Type           = MobileValidationCodeType.Register, // 注册
                ValidationCode = input.ValidationCode,
            };

            if (!await _mobileUserService.VerifyMobileValidationCodeAsync(verifyMobileValidationCodeInput, ModelState))
            {
                returnResult.Code    = 400;
                returnResult.Message = ModelState.FirstErrorMessage();
                return(returnResult);
            }
            await _mobileUserService.FinishVerifyMobileValidationCodeAsync(verifyMobileValidationCodeInput.Mobile, verifyMobileValidationCodeInput.Type, ModelState);

            var userInfo = await _mobileUserService.GenerateItemAsync(_authenticationSettings.RegisterDefaultGroupId, _authenticationSettings.RegisterDefaultStatus, input, ModelState);

            if (userInfo == null)
            {
                returnResult.Code    = 400;
                returnResult.Message = ModelState.FirstErrorMessage();
                return(returnResult);
            }

            if (userInfo.Status != UserStatus.Normal)
            {
                returnResult.Code    = 201;
                returnResult.Message = "注册成功,请等待审核。";
                return(returnResult);
            }

            var token        = _tokenService.GenerateAccessToken(userInfo);
            var refreshToken = await _tokenService.GenerateRefreshToken(userInfo.UserId);

            returnResult.Token        = token;
            returnResult.RefreshToken = refreshToken;
            returnResult.Code         = 200;
            returnResult.Message      = "注册成功";
            return(returnResult);
        }
コード例 #2
0
        public async Task <UserInfo> GenerateItemAsync(Guid groupId, UserStatus status, MobilePassswordValidationCodeRegisterInput input, ModelStateDictionary modelState)
        {
            // 密码加密
            var password = UserService.EncryptPassword(input.Password);
            var userInfo = await _manager.GenerateItemAsync(groupId, status, input.Mobile, password, modelState);

            if (userInfo != null && userInfo.Status == UserStatus.Normal)
            {
                await CacheUser(userInfo);
            }
            return(userInfo);
        }