Filament\Plugin), allowing drop-in installation without modifying core Filament or Laravel logic.config/filament-turnstile.php for Turnstile site key/secrets), reducing integration effort.Filament\Resources\Resource::pages()).composer.json or changelog.Form::validate())?composer test to validate.guzzlehttp/guzzle).composer require l3aro/filament-turnstile.php artisan vendor:publish --tag="filament-turnstile-config".TURNSTILE_SITE_KEY and TURNSTILE_SECRET in .env.login, register) in config/filament-turnstile.php.Filament\Filament::serving(function () {
Filament\Panel::widget(TurnstileWidget::class);
});
public static function form(Form $form): Form {
return $form->spawn(Turnstile::make());
}
L3aro\FilamentTurnstile).composer.json locks the package version to avoid unintended updates:
"l3aro/filament-turnstile": "^1.0.0"
https://challenges.cloudflare.com/) is whitelisted in your CSP headers.TURNSTILE_SECRET is correct and not exposed in logs.php artisan filament:cache-clear) if widgets fail to render.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Turnstile API downtime | CAPTCHA verification fails | Fallback to manual review or disable CAPTCHA |
Invalid site_key/secret |
All verifications rejected | Validate .env values during deployment |
| CSP blocking Turnstile script | CAPTCHA UI broken | Whitelist challenges.cloudflare.com in CSP |
| Filament cache corruption | Widgets not rendering | Implement cache invalidation hooks |
| Rate limiting by Cloudflare | High latency/spikes | Add retry logic with jitter |
How can I help you explore Laravel packages today?