shirakun / laravel-capjs
A package to help you implement the cap.js (CAP Worker Service) CAPTCHA alternative
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
pkg:composer/shirakun/laravel-capjs
Requires
- php: ^8.2|^8.3|^8.4
- guzzlehttp/guzzle: ^7.7
- illuminate/contracts: ^10.0|^11.0|^12.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.0|^8.0
- nunomaduro/larastan: ^2.8.0|^3.1.0
- orchestra/testbench: ^8.0|^9.0|^10.0
- pestphp/pest: ^2.0|^3.7
- pestphp/pest-plugin-arch: ^2.0|^3.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0|^2.0
- phpstan/phpstan-phpunit: ^1.0|^2.0
README
Laravel Cap.js, is a package to help you implement cap.js (CAP Worker Service) easily.
Installation
You can install the package via composer:
composer require shirakun/laravel-capjs
You can publish the config file with:
php artisan vendor:publish --tag="capjs-config"
This is the contents of the published config file:
return [ /* |-------------------------------------------------------------------------- | Cap.js Keys |-------------------------------------------------------------------------- | | This value is the site, and the secret key of your application. | Cap.js might not require these by default, but they are available | for custom worker endpoints. | */ 'capjs_site_key' => env('CAPJS_SITE_KEY', null), 'capjs_secret_key' => env('CAPJS_SECRET_KEY', null), 'capjs_api_endpoint' => env('CAPJS_API_ENDPOINT', 'https://captcha.gurl.eu.org/api/validate'), /* |-------------------------------------------------------------------------- | Error Messages |-------------------------------------------------------------------------- | | Here you can find the error messages for the application. You can modify | or translate the error message as you like. | */ 'error_messages' => [ 'capjs_check_message' => 'The CAPTCHA thinks you are a robot! Please refresh and try again.', ], ];
Usage
Cap.js Widget Component
Once you require this package, you can use the capjs widget in your form, like the following:
<x-capjs-widget theme="light" size="normal" shape="square" elevation="flat" />
Cap.js Backend Validation
Once you use the widget component in the frontend, you can validate the Cap.js response by using the validate method.
Here's an example:
use Shirakun\LaravelCapjs\Facades\LaravelCapjs; public function store(Request $request) { $response = LaravelCapjs::validate(); if (! $response['success']) { // do your logic } }
You may, optionally, send the token with the validation method:
public function store(Request $request) { $response = LaravelCapjs::validate( $request->get('cap-token'); ); }
Cap.js Custom Rule
If you want clean validation, you can use the CapjsCheck custom rule:
use Shirakun\LaravelCapjs\Rules\CapjsCheck; public function store(Request $request) { $request->validate([ 'cap-token' => [new CapjsCheck()] ]); }
Credits
License
The MIT License (MIT). Please see the License File for more information.