joukhar / laravel-no-captcha-v3
Laravel no captcha v3 是一个轻量级包,可以将 Google reCAPTCHA v3 添加到 Laravel 应用程序中的敏感页面
1.0
2022-10-20 15:01 UTC
Requires
- php: >=7.4
README
安装
在 composer.json 中添加新的必需包
"joukhar/laravel-no-captcha-v3": "^1.0"
运行 composer update
或 php composer.phar update
。
或直接通过 composer 安装
composer require joukhar/laravel-no-captcha-v3
要求
需要 php >= 7.4
配置
您可以覆盖包的默认选项。首先发布配置
php artisan vendor:publish --provider="Joukhar\LaravelNoCaptchaV3\LaravelNoCaptchaV3" --tag=laravel-no-captcha-v3-config
然后将以下键添加到 .env 文件中以打开/关闭 reCAPTCHA
ENABLE_NO_CAPTCHA=on
GOOGLE_RECAPTCHA_SITE_KEY=
GOOGLE_RECAPTCHA_SECRET_KEY=
并在配置文件中添加您的 reCAPTCHA 凭据
'recaptcha' => [ 'site_key' => env('GOOGLE_RECAPTCHA_SITE_KEY'), 'secret_key' => env('GOOGLE_RECAPTCHA_SECRET_KEY') ]
您可以在以下位置获取它们 https://www.google.com/u/1/recaptcha/admin/create
视图
如果您想覆盖默认视图,您可以通过以下方式发布它们
php artisan vendor:publish --provider="Joukhar\LaravelNoCaptchaV3\LaravelNoCaptchaV3" --tag=laravel-no-captcha-v3-views
使用方法
在路由文件(web.php)中
Route::post('submit-form', [TestController::class, 'handleFormSubmission']);
在 blade 文件中
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <form action="{{ route('validate-form') }}" method="post"> @csrf @include('NoCaptchaV3::recaptcha-input') <button type="submit">Submit Form</button> </form> {{-- -------------------------------------------------------------------- --}} {{-- Your Scripts --}} {{-- -------------------------------------------------------------------- --}} @include('NoCaptchaV3::recaptcha-script') </body> </html>
在关联之前 blade 文件的控制器中
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Joukhar\LaravelNoCaptchaV3\Http\Controllers\NoCaptchaV3Controller; class TestController extends Controller { public function handleFormSubmission(Request $request, NoCaptchaV3Controller $noCaptchaV3Controller) { $request->validate([ 'recaptcha' => 'required' ]); // if reCaptcha Validation has Failed, it will return 'Google reCaptcha Validation has Failed'; // if reCaptcha score >= 0.5, it will return 'safe' otherwise it will return 'not safe' ; // if ENABLE_NO_CAPTCHA = off , it will return 'false' ; $recaptchaResult = $noCaptchaV3Controller->reCaptchaResponse(); // conclusion if ($recaptchaResult == 'safe') { // your code } } }
许可协议
MIT 许可协议 (MIT)。请参阅 许可文件 以获取更多信息。