using System; using System.Collections.Generic; using Amazon.Lambda.Core; using Amazon.Lambda.APIGatewayEvents; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using classes; using System.Net.Http; using System.Threading.Tasks; namespace PMF { public class Recaptcha: Pmfbase { public async Task IsRecaptchaValid(APIGatewayProxyRequest request, ILambdaContext context) { try { var data = JsonConvert.DeserializeObject(request.Body); var token = data["recaptcha"].ToString(); var client = new HttpClient(); string privateKey = Constants.reCAPTCHA_KEY; var values = new Dictionary { {"secret", privateKey}, {"response", token}, }; var content = new FormUrlEncodedContent(values); var captchaRequest = await client.PostAsync(Constants.reCAPTCHA_URL, content); var captchaResponse = await captchaRequest.Content.ReadAsStringAsync(); var result = JObject.Parse(captchaResponse); bool recaptchaResult = (bool)result.SelectToken("success"); if (recaptchaResult) { return HttpService.CreateResponse(200, payload: "true"); } return HttpService.CreateResponse(200, payload: "false"); } catch (Exception ex) { return HttpService.CreateResponse(500, payload: ex.Message); } } } }