goedemiddag / laravel-recaptcha
一个简单易用的Laravel Google ReCaptcha v3包
v1.0.1
2024-05-28 09:35 UTC
Requires
- php: ^8.1
- google/recaptcha: ^1.3
- laravel/framework: ^10.0|^11.0
Requires (Dev)
- laravel/pint: ^1.16
- orchestra/testbench: ^8.0|^9.0
- phpstan/phpstan: ^1.11
This package is auto-updated.
Last update: 2024-08-28 10:06:50 UTC
README
这是一个用于Google reCAPTCHA v3的Laravel包。
安装
您可以通过composer安装此包
composer require goedemiddag/laravel-recaptcha
将以下环境变量添加到您的.env
文件中
RECAPTCHA_SITE_KEY=YOUR_SITE_KEY RECAPTCHA_SECRET_KEY=YOUR_SECRET_KEY RECAPTCHA_THRESHOLD=0.3
配置
您可以选择发布配置文件
php artisan vendor:publish --provider="Goedemiddag\ReCaptcha\ReCaptchaServiceProvider" --tag="recaptcha-config"
这是已发布配置文件的内容
return [ 'site_key' => env('RECAPTCHA_SITE_KEY'), 'secret_key' => env('RECAPTCHA_SECRET_KEY'), // The threshold to pass the recaptcha validation, from 0 (easiest) to 1 (hardest) 'threshold' => env('RECAPTCHA_THRESHOLD', 0.3), // Provide IP addresses that shouldn't be validated 'skip_ips' => [ // 127.0.0.1 ], ];
翻译
默认情况下,此包提供荷兰语和英语翻译。您可以选择发布翻译
php artisan vendor:publish --provider="Goedemiddag\ReCaptcha\ReCaptchaServiceProvider" --tag="recaptcha-lang"
用法
此包旨在为您的应用程序后端提供Google ReCaptcha v3验证,并提供一些工具以便在前端使用。
快速入门
将<x-recaptcha::input />
blade组件添加到您的表单中
<form method="POST">
@csrf
<x-recaptcha::input />
...
<button type="submit">Submit</button>
</form>
将<x-recaptcha::script />
blade组件添加到您的布局末尾
<body>
...page content...
<x-recaptcha::script />
</body>
将事件监听器绑定到表单提交事件,请根据您的应用程序调整此设置
document.querySelector('form').addEventListener('submit', function (event) { event.preventDefault(); window.reCaptcha.render('submit', function (token) { // Set token value event.target.querySelector('input[name="g-recaptcha-response"]').value = token; // Submit form event.target.submit(); }); });
将ReCaptchaRule
添加到您的表单请求中
public function rules(): array { return [ 'g-recaptcha-response' => ['required', new ReCaptchaRule()], ]; }
贡献
发现了错误或想添加新功能?太好了!还有许多其他方式可以做出有意义的贡献,例如审查悬而未决的pull请求和编写文档。即使是为您找到的错误打开一个问题也是受欢迎的。
在创建pull请求时,请确保它已通过测试,遵循代码标准(运行composer pint:fix
为您处理),并请为每个功能创建一个pull请求。作为回报,您将作为贡献者获得认可。