Nuget
Install-Package Spaier.Recaptcha
CLI do .NET
dotnet add package Spaier.Recaptcha
public void ConfigureServices ( IServiceCollection services ) {
// Your Code
services . AddRecaptcha ( )
// Use appsettings.json
//.AddInMemoryConfigurationStore(Configuration.GetSection("Recaptcha"))
. AddInMemoryConfigurationStore ( new Dictionary < string , RecaptchaConfiguration >
{
[ "Sitekey1" ] = new RecaptchaConfiguration ( RecaptchaDefaults . TestSecretKey , RecaptchaSecretType . V2 ) ,
[ "Sitekey2" ] = new RecaptchaConfiguration ( RecaptchaDefaults . TestSecretKey , RecaptchaSecretType . V2Android ) ,
[ "Sitekey3" ] = new RecaptchaConfiguration ( RecaptchaDefaults . TestSecretKey , RecaptchaSecretType . V3 ) ,
} )
. AddTokenHeaderProvider ( )
. AddConfigurationHeaderProvider ( )
. AddRecaptchaHttpClient ( configureHttpBuilder : httpBuilder =>
{
// You can setup Polly here
httpBuilder . AddTransientHttpErrorPolicy ( builder => builder . WaitAndRetryAsync ( new [ ]
{
TimeSpan . FromSeconds ( 1 ) ,
TimeSpan . FromSeconds ( 5 ) ,
TimeSpan . FromSeconds ( 10 )
} ) ) ;
} )
. UseGoogleUrl ( ) ;
// UseGlobalUrl(); // will use recaptcha.net mirror. Useful for countries where google.com is blocked.
// UseCustomUrl("your_url"); // will use custom url for validation.
}
ValidateRecaptcha
a uma ação. Configurations
define configurações permitidas para uma ação. Se nada for especificado, você poderá usar qualquer configuração. Se apenas um for especificado, você poderá omitir o token de configuração.
AllowedAction
funciona com V2 ou V3. Não especifique para ignorar a verificação de ação.
MinimumScore
funciona com V3. O padrão é 0.5
.
UseModelErrors
determina se erros serão adicionados ao modelo MVC. Verdadeiro por padrão.
Você pode passar uma resposta recaptcha para uma ação usando FromRecaptchaResponseAttribute
com qualquer parâmetro de método derivado de IRecaptchaResponse
.
[ HttpPost ]
[ AllowAnonymous ]
[ ValidateRecaptcha ( Configurations = new [ ] { "Sitekey1" , "Sitekey2" } , MinimumScore = 0.7 , AllowedAction = "register" ) ]
public async Task < ActionResult > ProtectedByV3AndV2 ( [ FromRecaptchaResponse ] RecaptchaResponse response )
{
// Your Code
}
A resposta de um reCAPTCHA deve ser passada em um cabeçalho HTTP com a chave especificada ou g-recaptcha-response
.
A chave de configuração de um reCAPTCHA deve ser passada em um cabeçalho HTTP com a chave especificada ou g-recaptcha-type
se houver mais de uma configuração armazenada ou especificada em Configurations
.
Se o token passado pelo lado do cliente for inválido, erros de modelo serão adicionados a ModelState
. Consulte RecaptchaErrorCodes
, ValidateRecaptchaAttribute.ErrorCodes
e documentos oficiais
MIT