Exemple #1
0
        public override async Task <VerifyResponse> VerifyPhone(VerifyPhoneRequest request, ServerCallContext context)
        {
            var token = await _registrationTokenService.GetByOriginalTokenAsync(request.Token);

            if (token == null || string.IsNullOrEmpty(request.Code) ||
                token.ExpirationDate <= DateTime.UtcNow ||
                !token.EmailVerified ||
                token.PhoneHash != request.Phone.ToSha256().ToBase64() ||
                token.LastCodeHash != request.Code.ToSha256().ToBase64())
            {
                return(new VerifyResponse()
                {
                    Result = new VerifyResponse.Types.VerifyPayload()
                    {
                        Passed = false
                    }
                });
            }

            token.PhoneVerified = true;
            await _registrationTokenService.SaveAsync(token);

            return(new VerifyResponse()
            {
                Result = new VerifyResponse.Types.VerifyPayload()
                {
                    Passed = true
                }
            });
        }
Exemple #2
0
        public override async Task <VerifyResponse> VerifyPhone(VerifyPhoneRequest request, ServerCallContext context)
        {
            var result = new VerifyResponse();

            var response = await _walletApiV1Client.VerifyPhoneAsync(new VerifyPhoneModel
            {
                PhoneNumber = request.Phone,
                Code        = request.Code,
                Token       = request.Token
            });

            if (response.Result != null)
            {
                result.Body = new VerifyResponse.Types.Body {
                    Passed = response.Result.Passed
                };
            }

            if (response.Error != null)
            {
                result.Error = response.Error.ToApiError();
            }

            return(result);
        }
        public async Task <bool> VerifyPhoneNumber(VerifyPhoneRequest data, long id)
        {
            var user = await _userRepo.GetByIdAsync(id);

            if (user == null)
            {
                throw new EntityNotFoundException("User not found");
            }

            throw new InvalidDataException("Incorrect code entered, please check your code and try again.");
        }
        public async Task VerifyPhoneAsync([FromBody] VerifyPhoneRequest model)
        {
            var customerId = _requestContext.UserId;

            var result = await _customerManagementClient.PhonesApi.ConfirmPhoneAsync(new PhoneVerificationCodeConfirmationRequestModel
            {
                VerificationCode = model.VerificationCode,
                CustomerId       = customerId
            });

            if (result.Error != VerificationCodeError.None)
            {
                switch (result.Error)
                {
                case VerificationCodeError.AlreadyVerified:
                    throw LykkeApiErrorException.BadRequest(ApiErrorCodes.Service.PhoneIsAlreadyVerified);

                case VerificationCodeError.CustomerPhoneIsMissing:
                    throw LykkeApiErrorException.BadRequest(ApiErrorCodes.Service.CustomerPhoneIsMissing);

                case VerificationCodeError.PhoneAlreadyExists:
                    throw LykkeApiErrorException.BadRequest(ApiErrorCodes.Service.PhoneAlreadyExists);

                case VerificationCodeError.VerificationCodeDoesNotExist:
                    throw LykkeApiErrorException.BadRequest(
                              new LykkeApiErrorCode(result.Error.ToString(), "Verification code does not exist"));

                case VerificationCodeError.VerificationCodeExpired:
                    throw LykkeApiErrorException.BadRequest(
                              new LykkeApiErrorCode(result.Error.ToString(), "Verification code has expired"));

                default:
                    throw new InvalidOperationException($"Unexpected error during VerifyPhoneAsync for {customerId} - {result}");
                }
            }
        }