All Projects → thinhbuzz → Laravel Google Captcha

thinhbuzz / Laravel Google Captcha

Licence: mit
Google captcha for Laravel 5, Laravel 6 and Laravel 7, support multiple captcha on page

Labels

Projects that are alternatives of or similar to Laravel Google Captcha

Laravel Location
A simple Laravel Package to sort Countries, States and Cities
Stars: ✭ 162 (-3.57%)
Mutual labels:  laravel
Github Labels
Add github labels automatically
Stars: ✭ 165 (-1.79%)
Mutual labels:  laravel
Themes
🎨 Laravel Themes package with support for the Caffeinated Modules package.
Stars: ✭ 167 (-0.6%)
Mutual labels:  laravel
Laraplans
SaaS style recurring plans for Laravel.
Stars: ✭ 163 (-2.98%)
Mutual labels:  laravel
Telegram Bot Sdk
🤖 Telegram Bot API PHP SDK. Lets you build Telegram Bots easily! Supports Laravel out of the box.
Stars: ✭ 2,212 (+1216.67%)
Mutual labels:  laravel
Laravel Rate Limited Job Middleware
A job middleware to rate limit jobs
Stars: ✭ 166 (-1.19%)
Mutual labels:  laravel
Laravel Ecommerce
Laravel open source e-commerce system.
Stars: ✭ 163 (-2.98%)
Mutual labels:  laravel
Partyline
Output to Laravel's console from outside of your Command classes.
Stars: ✭ 168 (+0%)
Mutual labels:  laravel
Laravel Page Speed
Package to optimize your site automatically which results in a 35%+ optimization
Stars: ✭ 2,097 (+1148.21%)
Mutual labels:  laravel
Awesome Opensource Apps
🏠ℹ️ Curated list of awesome open source crafted web & mobile applications - Learn, Fork, Contribute & Most Importantly Enjoy!
Stars: ✭ 2,199 (+1208.93%)
Mutual labels:  laravel
Support
💪 Support package is a collection of helpers and tools for ARCANEDEV + Laravel projects.
Stars: ✭ 164 (-2.38%)
Mutual labels:  laravel
Microweber
Drag and Drop Website Builder and CMS with E-commerce
Stars: ✭ 2,226 (+1225%)
Mutual labels:  laravel
Laravel Realtime Example
Realtime 🍕 Pizza Order Tracker 🍕 - Laravel, Vue & Pusher
Stars: ✭ 165 (-1.79%)
Mutual labels:  laravel
Roastapp
Laravel学院 Roast 应用源码
Stars: ✭ 164 (-2.38%)
Mutual labels:  laravel
Logviewer
📃 Provides a log viewer for Laravel
Stars: ✭ 2,098 (+1148.81%)
Mutual labels:  laravel
Laravel Security Checker
Added Laravel functionality to Enlightn Security Checker. Adds a command to check for, and optionally emails you, vulnerabilities when they affect you.
Stars: ✭ 163 (-2.98%)
Mutual labels:  laravel
Livewire Alert
SweetAlert2 wrapper for Livewire
Stars: ✭ 161 (-4.17%)
Mutual labels:  laravel
Imall
基于Laravel5.2,Vue.js1.0的微信商城,用于熟悉 Laravel、Vuejs、Webpack、Gulp 的结合使用,已不维护及更新。(1MB单核基础服务器,浏览请耐心等待图片加载...)
Stars: ✭ 168 (+0%)
Mutual labels:  laravel
Phphub5
PHPHub Ver 5 is a Forum project Powered by Laravel 5.1, and it is also the project build up PHP & Laravel China community (此项目已弃用)
Stars: ✭ 1,971 (+1073.21%)
Mutual labels:  laravel
Ignition Go
Bootstrap4 /Codeigniter 3 Modular (HMVC) App Building Framework - to build enterprise class web applications... Versions: CodeIgniter 3.1.9 AdminLTE 3.4 Bootstrap 4.5.0
Stars: ✭ 166 (-1.19%)
Mutual labels:  laravel

Google captcha for Laravel 5, Laravel 6, Laravel 7 and Laravel 8

Support multiple captcha on page

Google captcha for Laravel 5, Laravel 6, Laravel 7 and Laravel 8

Inspired by anhskohbo/no-captcha and base on google captcha sdk.

Features

  • [x] Multiple captcha on page

  • [x] Reset captcha

  • [x] Auto discover service provider

  • [x] Custom request method

  • [x] Using difference key

  • [x] Dynamic options on runtime

Installation

Add the following line to the require section of composer.json:

{
    "require": {
        "buzz/laravel-google-captcha": "2.*"
    }
}

OR

Require this package with composer:

composer require buzz/laravel-google-captcha

Update your packages with composer update or install with composer install.

Setup

Has support auto discover for Laravel >=5.5

Add ServiceProvider to the providers array in config/app.php.

'Buzz\LaravelGoogleCaptcha\CaptchaServiceProvider',

Publish Config

php artisan vendor:publish --provider="Buzz\LaravelGoogleCaptcha\CaptchaServiceProvider"

Custom ReCaptcha request (minimum version 2.1.7)

Edit request_method in the config/captcha.php config

file config/captcha.php

<?php
/*
 * Secret key and Site key get on https://www.google.com/recaptcha
 * */
return [
    'secret' => env('CAPTCHA_SECRET', 'default_secret'),
    'sitekey' => env('CAPTCHA_SITEKEY', 'default_sitekey'),
    /**
     * @var string|null Default ``null``.
     * Custom with function name (example customRequestCaptcha) or [email protected] (example \App\[email protected]).
     * Function must be return instance, read more in repo ``https://github.com/thinhbuzz/laravel-google-captcha-examples``
     */
    'request_method' => null,
    'options' => [
        'multiple' => false,
        'lang' => app()->getLocale(),
    ],
    'attributes' => [
        'theme' => 'light'
    ],
];

file app/helpers.php

<?php

function customRequestCaptcha(){
    return new \ReCaptcha\RequestMethod\Post();
}

or file app/CustomRequestCaptcha.php

<?php

namespace App;

class CustomRequestCaptcha
{
    public function custom()
    {
        return new \ReCaptcha\RequestMethod\Post();
    }
}

Configuration

Add CAPTCHA_SECRET and CAPTCHA_SITEKEY to .env file:

CAPTCHA_SECRET=[secret-key]
CAPTCHA_SITEKEY=[site-key]

Usage

View example

Get examples in examples repo

Display reCAPTCHA

{!! app('captcha')->display($attributes) !!}

OR use Facade: add 'Captcha' => '\Buzz\LaravelGoogleCaptcha\CaptchaFacade', to the aliases array in config/app.php and in template use:

{!! Captcha::display($attributes) !!}

OR use Form

{!! Form::captcha($attributes) !!}

With custom language support:

{!! app('captcha')->display($attributes = [], $options = ['lang'=> 'vi']) !!}

With

// element attributes
$attributes = [
    'data-theme' => 'dark',
    'data-type' => 'audio',
];
// package options
$options = [
    'data-theme' => 'dark',
    'data-type'	=> 'audio',
];

More information on google recaptcha document

Please help me write readme for this content

Validation

Add 'g-recaptcha-response' => 'required|captcha' to rules array.

use Validator;
use Illuminate\Support\Facades\Input;

$validate = Validator::make(Input::all(), [
    'g-recaptcha-response' => 'required|captcha'
]);

Testing

When using the Laravel Testing functionality, you will need to mock out the response for the captcha form element. For any form tests involving the captcha, you can then mock the facade behaviour:

// Prevent validation error on captcha
        CaptchaFacade::shouldReceive('verify')
            ->andReturn(true);
            
// Provide hidden input for your 'required' validation
        CaptchaFacade::shouldReceive('display')
            ->andReturn('<input type="hidden" name="g-recaptcha-response" value="1" />');
            
// Add these when testing multiple captchas on a single page
        CaptchaFacade::shouldReceive('displayJs');
        CaptchaFacade::shouldReceive('displayMultiple');
        CaptchaFacade::shouldReceive('multiple');

Contribute

https://github.com/thinhbuzz/laravel-google-captcha/pulls

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].