Example #1
0
        public DefaultHttpRequestMessage(DefaultHttpRequestMessageOptions options) : base(options.HttpMethod, options.RequestUri)
        {
            if (!String.IsNullOrEmpty(options.Token))
            {
                Headers.Authorization = new AuthenticationHeaderValue("Bearer", options.Token);
            }

            if (!String.IsNullOrEmpty(options.Body))
            {
                Content = new StringContent(options.Body, System.Text.Encoding.UTF8, options.MediaType);
            }
        }
Example #2
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            string token = req.Query[RecaptchaToken];

            if (string.IsNullOrWhiteSpace(token))
            {
                return(new BadRequestObjectResult("Please pass a reCAPTCHA token on the query string."));
            }

            if (_client == null)
            {
                _client = new HttpClient {
                    BaseAddress = new Uri(BaseAddress)
                };
            }

            string googleRecaptchaSecretKey = Environment.GetEnvironmentVariable("GoogleRecaptchaSecretKey", EnvironmentVariableTarget.Process);
            string endPoint = $"siteverify?secret={googleRecaptchaSecretKey}&response={token}";

            DefaultHttpRequestMessageOptions options = new DefaultHttpRequestMessageOptions
            {
                HttpMethod = HttpMethod.Post,
                RequestUri = endPoint,
            };

            using DefaultHttpRequestMessage requestMessage = new DefaultHttpRequestMessage(options);
            HttpResponseMessage responseMessage = await _client.SendAsync(requestMessage);

            string content = await responseMessage.Content.ReadAsStringAsync();

            if (responseMessage.IsSuccessStatusCode)
            {
                return(new OkObjectResult(content));
            }

            return(new BadRequestObjectResult($"Could not validate the reCAPTCHA token : {content}"));
        }