Идиоматичный и типобезопасный .NET клиент для сервиса Yandex SmartCaptcha.
dotnet add package Planfact.Yandex.SmartCaptchausing Planfact.Yandex.SmartCaptcha;
var settings = new SmartCaptchaSettings { SecretKey = "YOUR_SECRET_KEY" };
var validator = new SmartCaptchaValidator(settings);
var result = await validator.ValidateAsync("captcha_token", "127.0.0.1");
if (result.IsValid)
{
Console.WriteLine("Валидация прошла успешно!");
}// Program.cs
builder.Services.AddSmartCaptcha(builder.Configuration);
// Внедрение зависимости
public class CaptchaController : Controller
{
private readonly ISmartCaptchaValidator _validator;
public CaptchaController(ISmartCaptchaValidator validator)
{
_validator = validator;
}
public async Task<IActionResult> Verify(string token)
{
var clientIp = Request.HttpContext.Connection.RemoteIpAddress?.ToString();
var result = await _validator.ValidateAsync(token, clientIp);
return Json(new { isValid = result.IsValid });
}
}💡 Конфигурирование: Для настройки IAM Token, API Key и других параметров см. документацию по конфигурированию
- 🔐 Три типа аутентификации: Secret Key, IAM Token, API Key
- 🌐 IP валидация для повышения точности
- ⚙️ Гибкие настройки: пропуск IP-адресов, таймауты, отключение валидации
- 📝 Интеграция с логированием Microsoft.Extensions.Logging
- 🛡️ Встроенная надежность: автоматические retry, circuit breaker, и resilience patterns
- 🚀 Enterprise-готовность: основан на Reliable.HttpClient для production-нагрузок
- 🧪 Готовность к тестированию с поддержкой DI
- .NET 6.0+
- .NET 8.0+
- .NET 9.0+
MIT License. См. LICENSE для деталей.