arcaptcha / arcaptcha-laravel
Laravel Package for the ArCaptcha
Requires
- php: >=7.3
- arcaptcha/arcaptcha-php: ^1.0
- laravel/framework: >=5.0
Requires (Dev)
- orchestra/testbench: ^6.19
- squizlabs/php_codesniffer: ^3.6
Suggests
- mohammadv184/arcaptcha: PHP library for ArCaptcha
README
Laravel ArCaptcha Package
Laravel Package for the ArCaptcha
This package supports PHP 7.3+
.
For PHP integration you can use mohammadv184/arcaptcha package.
List of contents
Installation
You can install the package via composer:
composer require arcaptcha/arcaptcha-laravel
Laravel 5.5 (or greater) uses package auto-discovery, so doesn't require you to manually add the Service Provider, but if you don't use auto-discovery ArCaptchaServiceProvider must be registered in config/app.php:
'providers' => [ ... Mohammadv184\ArCaptcha\Laravel\ArCaptchaServiceProvider::class, ];
You can use the facade for shorter code. Add ArCaptcha to your aliases:
'aliases' => [ ... 'ArCaptcha' => Mohammadv184\ArCaptcha\Laravel\Facade\ArCaptcha::class, ];
Configuration
Publish package
Create config/arcaptcha.php configuration file using the following artisan command:
php artisan vendor:publish --provider="Mohammadv184\ArCaptcha\Laravel\ArCaptchaServiceProvider"
Set the environment
Open .env file and set ARCAPTCHA_SITE_KEY
and ARCAPTCHA_SECRET_KEY
:
# in your .env file ARCAPTCHA_SITE_KEY=YOUR_API_SITE_KEY ARCAPTCHA_SECRET_KEY=YOUR_API_SECRET_KEY # Optional: Default returned value from verify function # when there is an Network or any other unexpected issue. ARCAPTCHA_VERIFY_EXCEPTION_VALUE=true
Customize error message
Before starting please add the validation message to resources/lang/[LANG]/validation.php
file
return [ ... 'arcaptcha' => 'Hey!!! :attribute is wrong!', ];
How to use
How to use ArCaptcha in Laravel.
Embed Script in Blade
Insert @arcaptchaScript
blade directive before closing </head>
tag.
You can also use ArCaptcha::getScript()
.
<!DOCTYPE html> <html> <head> ... @arcaptchaScript </head> </html>
Form setup
After you have to insert @arcaptchaWidget
blade directive inside the form where you want to use the field arcaptcha-token
.
You can also use ArCaptcha::getWidget()
.
Note : You can pass widget options into getWidget function or arcaptchaWidget directive like this : @arcaptchaWidget(['lang'=>'en'])
To see available options on widget see here
<form> @csrf ... @arcaptchaWidget <!-- OR --> {!! ArCaptcha::getWidget() !!} <input type="submit" /> </form>
Verify submitted data
Add arcaptcha
to your rules
$validator = Validator::make(request()->all(), [ ... 'arcaptcha-token' => 'arcaptcha', ]); // check if validator fails if($validator->fails()) { ... $errors = $validator->errors(); }
Invisible mode example
Just try to pass size
and callback
option to getWidget function. Make sure to define callback function in global scope:
<form> {!! ArCaptcha::getWidget([ 'size'=>'invisible','callback'=>'callback']) !!} <input type="submit" /> <script> function callback(token) { // Challenge is solved! Just submit the form! } </script> </form>
Credits
License
The MIT License (MIT). Please see License File for more information.