nissicreative / laravel-recaptcha
A simple reCAPTCHA implementation for your Laravel project.
Installs: 471
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 1
Open Issues: 0
pkg:composer/nissicreative/laravel-recaptcha
Requires
- php: ^5.6 || ^7.0 || ^8.0
- guzzlehttp/guzzle: ^6.2 || ^7.0
- illuminate/support: ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0
README
Easily integrate Google's reCAPTCHA into your Laravel 5+ project.
Installation
composer require nissicreative/laravel-recaptcha
Setup
Add the service provider to the providers array in app/config/app.php.
(You can skip this step if using Laravel 5.5+, as it will use Laravel's autodiscovery.)
Nissi\ReCaptcha\ReCaptchaServiceProvider::class,
Configuration
Visit https://google.com/recaptcha and register your site. Be sure to list all domains on which you will use the widget, including any local or staging domains (e.g.
localhostormysite.test). You will be assigned a Site Key and a Secret Key.
Add these reCAPTCHA keys to your .env file:
RECAPTCHA_KEY=my-site-key RECAPTCHA_SECRET=my-secret-key
This is the default config file:
<?php return [ 'key' => env('RECAPTCHA_KEY'), 'secret' => env('RECAPTCHA_SECRET'), 'script_url' => 'https://www.google.com/recaptcha/api.js', 'verify_url' => 'https://www.google.com/recaptcha/api/siteverify', 'error_message' => 'reCAPTCHA validation failed. Please try again.', 'log_responses' => false, ];
If you would like to modify the config file and/or views, you may run:
php artisan vendor:publish
Usage: The Form Page
In your page's <head> section, add this line to include the remote Google JavaScript file:
@include('recaptcha::script')
Then inside your form, insert the widget:
@include('recaptcha::widget')
That's it! You should now see the reCAPTCHA widget when you refresh the page.
Validating the Request
Validation is simple: Just add a recaptcha rule to your validator. For example, in a controller:
$this->validate($request, [ 'g-recaptcha-response' => 'required|recaptcha', // Other rules... ], [ // Custom messages 'g-recaptcha-response.required' => 'Please complete the reCAPTCHA.', ]);
The recaptcha rule takes care of sending the input to Google's servers via Guzzle, and returns true upon successful validation.
Voilá!
Enjoy your reduced-spam lifestyle.