class Hcaptcha
{
public bool success { get; set; }
public DateTime challenge_ts { get; set; }
public string hostname { get; set; }
}
處理 POST 要求
public async Task<IActionResult> OnPostAsync()
{
var token = Request.Form["h-captcha-response"];
var secret = "0xc55C202E9c857A09758fB6e3C13437b70Ee33333";
var url = $"https://hcaptcha.com/siteverify?response={token}&secret={secret}";
var client = _clientFactory.CreateClient();
using var response = await client.PostAsync(url, null);
using var contentStream = await response.Content.ReadAsStreamAsync();
var result = await JsonSerializer.DeserializeAsync<Hcaptcha>(contentStream);
if (result.success)
{
// do somthing...
return RedirectToPage("./Privacy");
}
else
{
// reject
return RedirectToPage("./Error");
}
}