Easily integrate Google's reCAPTCHA into your Laravel 5+ project.
composer require nissicreative/laravel-recaptcha
Add the service provider to the providers array in app/config/app.php.
Nissi\ReCaptcha\ReCaptchaServiceProvider::class,
Visit https://google.com/recaptcha and register a new site. 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
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.
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...
]);
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.