public bool CaptchaValidate() { string ResponseByGoogle = Request["g-recaptcha-response"]; string CaptchaSecretKey = "6LfnN4AUAAAAAJm-GDYwST1UBuMSJKLAypBRqLB5"; HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://www.google.com/recaptcha/api/siteverify?secret=" + CaptchaSecretKey + "&response=" + ResponseByGoogle); try { using (WebResponse wResponse = req.GetResponse()) { using (StreamReader readStream = new StreamReader(wResponse.GetResponseStream())) { string jsonResponse = readStream.ReadToEnd(); JavaScriptSerializer js = new JavaScriptSerializer(); CaptchaValidate data = js.Deserialize <CaptchaValidate>(jsonResponse); Valid = Convert.ToBoolean(data.success); } } return(Valid); } catch (WebException ex) { throw ex; } }
public async Task <IActionResult> Register([FromBody] Login login) { string error = "error"; string captchaError = "captcha"; string passwordRegex = @"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{6,20}$"; var reg = new Regex(passwordRegex); var pass = reg.IsMatch(login.Password); if (pass && IsMailValid(login.Email)) { var captcha = new CaptchaValidate().CaptchaVerify(login.captchaToken); if (!captcha) { return(Json(captchaError)); } var user = await _userRepository.RegisterAsync(login.Email, login.Password); return(Json(user)); } return(Json(error)); }