anhskohbo/no-captcha
Laravel package to integrate Google reCAPTCHA (No CAPTCHA) in your forms. Includes config via .env, Blade helpers to render JS and display widgets, supports language and custom attributes, and works with Laravel 5+ (auto-discovery on 5.5+).
.env configuration.captcha rule, eliminating custom validation logic and reducing form-handling complexity.renderJs(), display(), displaySubmit()) are idiomatic for Laravel apps, enabling quick UI integration without frontend framework constraints.NoCaptcha class) allows integration into non-Laravel PHP stacks, though Laravel-specific features (e.g., validation) are lost..env entry (NOCAPTCHA_SECRET, NOCAPTCHA_SITEKEY) and optional Blade snippets for JS rendering.g-recaptcha-response field name; custom names require middleware workarounds.verifyResponse() and display() methods, adding maintenance overhead.NoCaptcha class directly.NoCaptcha class to verify responses via API endpoints.verifyResponse().g-recaptcha-response in request payloads.composer require anhskohbo/no-captcha..env with NOCAPTCHA_SECRET and NOCAPTCHA_SITEKEY (obtain from Google reCAPTCHA Admin).config/app.php.php artisan vendor:publish --provider="Anhskohbo\NoCaptcha\NoCaptchaServiceProvider".{{ NoCaptcha::renderJs() }} to layouts/partials (e.g., _head.blade.php).{{ NoCaptcha::display() }} or {{ NoCaptcha::display(['data-theme' => 'dark']) }}.{{ NoCaptcha::displaySubmit('form-id', 'Submit', ['data-theme' => 'dark']) }}.'g-recaptcha-response' => 'required|captcha' to form rules.validation.php for localized error messages.NoCaptcha::shouldReceive('verifyResponse')->andReturn(true);
NoCaptcha::shouldReceive('display')->andReturn('<input type="hidden" name="g-recaptcha-response" value="1" />');
g-recaptcha-response in POST data:
$this->post('/register', ['g-recaptcha-response' => '1', 'email' => 'test@example.com']);
.env, Blade helpers, validation).env rotation tools or a cron job).verifyResponse() to log attempts for compliance/audit purposes.How can I help you explore Laravel packages today?