public async Task can_verify_a_captcha()
        {
            SetupResponse(true);

            var response = await captcha.Verify2Async("aaaaa", "bbbb", "cccc");

            response.Should().BeTrue();

            server.ShouldHaveCalled(Constants.VerifyUrl)
            .WithRequestBody("response=aaaaa&remoteip=bbbb&secret=cccc");
        }
Example #2
0
        public Task <bool> ValidateToken(string recaptchaToken, IPAddress clientIp)
        {
            //this can be null i.e. under proxy or from localhost.
            //TODO IISIntegration, etc
            var secret = recaptchaOptions.Value.PrivateKey;

            return(reCaptchaService.Verify2Async(recaptchaToken, clientIp?.ToString(), secret));
        }
Example #3
0
        private async Task <bool> Verify(string captchaResponse, IPAddress clientIp)
        {
            if (string.IsNullOrEmpty(captchaResponse) || clientIp is null)
            {
                return(false);
            }
            var captchaApi = new ReCaptchaService();

            return(await captchaApi.Verify2Async(captchaResponse, clientIp.ToString(), _recaptchaSettings.Value.SecretKey));
        }
Example #4
0
        public async Task can_verify_failed_response()
        {
            var responseJson = ResponseJson(false);

            var mockHttp = new MockHttpMessageHandler();

            mockHttp.Expect(HttpMethod.Post, Constants.VerifyUrl)
            .Respond("application/json", responseJson)
            .WithExactFormData("response=aaaaa&remoteip=bbbb&secret=cccc");

            var captcha = new ReCaptchaService(client: mockHttp.ToHttpClient());

            var response = await captcha.Verify2Async("aaaaa", "bbbb", "cccc");

            response.Should().BeFalse();

            mockHttp.VerifyNoOutstandingExpectation();
        }