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 } }); }
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}"); } } }