예제 #1
0
        public async Task <string> GetCaptchaVerification(SampleAPIArgs args)
        {
            string message = string.Empty;
            var    url     = "https://www.google.com/recaptcha/api/siteverify";
            var    content = new FormUrlEncodedContent(new Dictionary <string, string>
            {
                { "secret", this.reCAPTCHAVerificationOptions.Value.Secret },
                { "response", args.reCAPTCHAResponse }
            });

            var httpClient = httpClientFactory.CreateClient();
            var response   = await httpClient.PostAsync(url, content);

            response.EnsureSuccessStatusCode();
            var verificationResponse = response.Content.ReadAsStringAsync();
            var result = JsonConvert.DeserializeObject <reCAPTCHAVerificationResponse>(verificationResponse.Result);

            if (result.Success)
            {
                message = "success";
                return(message);
            }
            message = string.Join(", ", result.ErrorCodes.Select(err => err.Replace('-', ' ')));
            return(message);
        }
예제 #2
0
        public async Task PostAsync(SampleAPIArgs sampleAPIArgs)
        {
            string url = $"api/captcha";
            var    httpResponseMessage = await _httpClient.PostAsJsonAsync(url, sampleAPIArgs);

            if (!httpResponseMessage.IsSuccessStatusCode)
            {
                throw new Exception("Failed");
            }
        }
예제 #3
0
        public async Task <IActionResult> Post([FromBody] SampleAPIArgs args)
        {
            var url     = "https://www.google.com/recaptcha/api/siteverify";
            var content = new FormUrlEncodedContent(new Dictionary <string, string>
            {
                { "secret", this.reCAPTCHAVerificationOptions.Value.Secret },
                { "response", args.reCAPTCHAResponse }
            });

            var httpClient = this.HttpClientFactory.CreateClient();
            var response   = await httpClient.PostAsync(url, content);

            response.EnsureSuccessStatusCode();

            var verificationResponse = await response.Content.ReadAsAsync <reCAPTCHAVerificationResponse>();

            if (verificationResponse.Success)
            {
                return(Ok());
            }

            return(BadRequest(string.Join(", ", verificationResponse.ErrorCodes.Select(err => err.Replace('-', ' ')))));
        }