Google Recaptcha for Laravel 5

1.0.5 2016-09-15 15:35 UTC

This package is auto-updated.

Last update: 2020-01-13 13:27:28 UTC


Latest Version on Packagist Software License Build Status Total Downloads


This is a reCAPTCHA Validator package for Laravel 5.1.

WAAVI is a web development studio based in Madrid, Spain. You can learn more about us at waavi.com

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

composer require waavi/recaptcha 1.0.x

Or manually edit your composer.json file:

"require": {
    "waavi/recaptcha": "1.0.x"

In config/app.php, add the following entry to the end of the providers array:


And the following alias:

'ReCaptcha' => Waavi\ReCaptcha\Facades\ReCaptcha::class,

Publish the configuration file, the form view and the language entries:

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:


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:

'recaptcha' =>  'Your error message here',


Rendering the ReCaptcha form in your views

You may render the ReCaptcha widget in your blade forms by calling:

{!! ReCaptcha::render() !!}

Or by including the provided view (if you choose to do this, the sitekey must be present as a parameter):

@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

{!! ReCaptcha::render(['theme' => 'dark']) !!}


@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:

$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

Or in a much more convinient way, through the provided Validator extension, adding to your rules array:

$rules = [
    /** Your rules ... **/
    'g-recaptcha-response' => 'recaptcha',