origami/captcha

Simple Google Captcha integration for Laravel projects

2.2.0 2023-02-16 14:59 UTC

This package is auto-updated.

Last update: 2024-04-16 18:03:16 UTC


README

This package adds a validation rule and controller trait for easier integration with Google Recaptcha

Installation

Install this package through Composer.

composer require origami/captcha

Requirements

This package is designed to work with Laravel >= 6 currently. If you require 5.8 support, use version 1.

Setup

  1. Signup for a Google Recaptcha account at https://www.google.com/recaptcha/admin

  2. You should add a recatpcha section to your config/services.php file:

    
    'recaptcha' => [
        'key' => env('RECAPTCHA_KEY'),
        'secret' => env('RECAPTCHA_SECRET'),
    ],
  1. Update your .env file with the key and secret:
RECAPTCHA_KEY=
RECAPTCHA_SECRET=
  1. Add a language line to your validation file(s), e.g. resources/lang/en/validation.php

    'recaptcha' => 'The reCAPTCHA check was invalid',

Usage

Validator

$validator = Validator::make($request->all(), [
    'recaptcha' => 'recaptcha',
]);

Controller Validation

(Assuming your Controller has the ValidatesRequests trait)

class Contact extends Controller
{
    public function store(Request $request)
    {
        $this->validate($request, [
            'recatpcha' => 'recaptcha'
        ]);
    }
}

Controller with ValidatesCaptcha Trait

use Origami\Captcha\ValidatesCaptcha;

class Contact extends Controller
{
    use ValidatesCaptcha;

    public function store(Request $request)
    {
        $this->validateCatpcha($request);

        // The above will throw a ValidationException when the recaptcha fails.
    }

}

Blade Helpers

This packages registers two Blade helpers:

@recaptchaField is the equivalent of:

<div class="g-recaptcha" data-sitekey="{{ config('services.recaptcha.key') }}"></div>

@recaptchaScript is the equivalent of:

<script src="https://www.google.com/recaptcha/api.js"></script>

Author

Papertank Limited

License

MIT License