Google Recaptcha for Laravel 5
, (*1)
Introduction
This is a reCAPTCHA Validator package for Laravel 5.1., (*2)
WAAVI is a web development studio based in Madrid, Spain. You can learn more about us at waavi.com, (*3)
Laravel compatibility
| Laravel |
translation |
| 5.1.x |
1.0.x |
| 5.2.x |
1.0.4 and higher |
| 5.3.x |
1.0.5 and higher |
Installation and Setup
Require through composer, (*4)
composer require waavi/recaptcha 1.0.x
Or manually edit your composer.json file:, (*5)
"require": {
"waavi/recaptcha": "1.0.x"
}
In config/app.php, add the following entry to the end of the providers array:, (*6)
Waavi\ReCaptcha\ReCaptchaServiceProvider::class,
And the following alias:, (*7)
'ReCaptcha' => Waavi\ReCaptcha\Facades\ReCaptcha::class,
Publish the configuration file, the form view and the language entries:, (*8)
php artisan vendor:publish --provider="Waavi\ReCaptcha\ReCaptchaServiceProvider"
Enter your secret and site keys provided by Google in either your environment file (recommended) or the config file:, (*9)
RECAPTCHA_SITE_KEY=site_key
RECAPTCHA_SECRET_KEY=secret_key
A simple error message in english is provided when validation of a recaptcha fails. If you wish to customize it, add to your validation.php lang file the following entry:, (*10)
```php
'recaptcha' => 'Your error message here',
```
Usage
You may render the ReCaptcha widget in your blade forms by calling:, (*11)
{!! ReCaptcha::render() !!}
Or by including the provided view (if you choose to do this, the sitekey must be present as a parameter):, (*12)
@include('recaptcha::recaptcha', ['siteKey' => config('recaptcha.keys.site')])
You may also choose to customize the widget through the available options described in the official docs, (*13)
{!! ReCaptcha::render(['theme' => 'dark']) !!}
or
@include('recaptcha::recaptcha', ['siteKey' => config('recaptcha.keys.site'), 'options' => ['theme' => 'dark']])
Validating the ReCaptcha
There are two available options to validate the ReCaptcha. You may do so manually through the provided Facade:, (*14)
```php
$value = \Input::get('g-recaptcha-response');
$gResponse = \ReCaptcha::parseInput($value);
if ($gResponse->isSuccess()) {
return true;
}
else {
$errors = $gResponse->getErrorMessages(); // Returns an array of error messages in the form of errorCode => errorMessage
var_dump($errors);
}
```
Or in a much more convinient way, through the provided Validator extension, adding to your rules array:, (*15)
```php
$rules = [
/** Your rules ... **/
'g-recaptcha-response' => 'recaptcha',
];
```