public VerifyUserOTPResponse VerifyUserOTP(VerifyUserOTP userOTP) { using (Task <VerifyUserOTPResponse> runner = VerifyUserOTPAsync(userOTP)) { return(runner.Result); } }
/// <summary> /// Verifies a registered users OTP code /// </summary> /// <param name="userOTP">User details including OTP</param> /// <returns>VerifyUserOTPResponse</returns> public async Task <VerifyUserOTPResponse> VerifyUserOTPAsync(VerifyUserOTP userOTP) { if (!string.IsNullOrEmpty(DirectoryName) && string.IsNullOrEmpty(userOTP.DirectoryName)) { userOTP.DirectoryName = DirectoryName; } var jsonString = JsonSerializer(userOTP); using (var client = CreateClient(jsonString)) { var content = new StringContent(jsonString, Encoding.UTF8, "application/json"); var result = await client.PostAsync("api/ApplicationAPI/VerifyUserOTP", content); var stringResponse = await result.Content.ReadAsStringAsync(); try { var response = JsonDeserialize <VerifyUserOTPResponse>(stringResponse); string userID = userOTP.Username; if (VerifySignature(response.SignedResponse, response.RandomToken, userID, response.State.ToString(), response.SignedTime)) { return(response); } else { return(new Models.VerifyUserOTPResponse { State = UserAuthenticatorStateEnum.INVALID }); } }catch (Exception e) { return(new Models.VerifyUserOTPResponse { State = UserAuthenticatorStateEnum.INVALID }); } } }