GithubHelp home page GithubHelp logo

laravel5-recaptcha2's Introduction

laravel5-recaptcha2

Recaptcha v2 for Laravel 5. Inspired by anhskohbo/no-captcha and greggilbert/recaptcha.

Installation

Run 'composer require crazyinventor/laravel5-recaptcha2' or modify your composer.json:

{
    "require": {
        "crazyinventor/laravel5-recaptcha2": "1.0.1"
    }
}

Configuration

Get your keys for recaptcha from the admin page.

Then register the Service Provider.

Laravel 5.0

In /config/app.php, add the following to providers:

'CrazyInventor\Lacaptcha\LacaptchaServiceProvider',

and the following to aliases:

'Recaptcha' => 'CrazyInventor\Lacaptcha\Facades\Lacaptcha',

Laravel 5.1 and newer

In /config/app.php, add the following to providers:

CrazyInventor\Lacaptcha\LacaptchaServiceProvider::class,

and the following to aliases:

'Recaptcha' => CrazyInventor\Lacaptcha\Facades\Lacaptcha::class,

Publish config file

Publish the recaptcha configuration file by running the following command from a shell inside your Laravel's installation directory:

php artisan vendor:publish

This will create the file config/recaptcha.php in your Laravel's installation directory. You can modify this file by entering your sitekey and secret directly to it or adding the keys to your .env file.

.env file

Add RECAPTCHA_SECRET and RECAPTCHA_SITEKEY to your .env file:

RECAPTCHA_SECRET=[secret-key]
RECAPTCHA_SITEKEY=[site-key]

Replace [secret-key] and [site-key] with your keys.

Usage

  1. In your form, use {!! Recaptcha::render() !!} to echo out the markup.
  2. To validate your form, add the following rule:
$rules = [
    // ...
    'g-recaptcha-response' => 'required|recaptcha',
];

Testing

When testing your application you might want to skip the recaptcha part. To do so add these lines at the start of your test:

// prevent validation error on captcha
Recaptcha::shouldReceive('verify')
    ->once()
    ->andReturn(true);
// provide hidden input for your 'required' validation
Recaptcha::shouldReceive('render')
    ->zeroOrMoreTimes()
    ->andReturn('<input type="hidden" name="g-recaptcha-response" value="1" />');

Testing with Laravel 5.4 and Dusk

Unfortunately, mocking does not work for Laravel Dusk. But you can overwrite the validator function very easily by adding the following code to your test.

$app = $this->app;
    $app['validator']->extend('recaptcha', function ($attribute, $value) use ($app) {
    return true;
});

laravel5-recaptcha2's People

Contributors

d3rd4v1d avatar

Stargazers

 avatar  avatar

Watchers

James Cloos avatar 林士立 avatar David Schneider avatar

Forkers

d3rd4v1d

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.