ryangjchandler / laravel-cloudflare-turnstile
一个简单的包,帮助集成 Cloudflare Turnstile。
v1.1.0
2024-03-12 21:17 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.13.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.0|^8.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.1|^9.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^10.0
- spatie/laravel-ray: ^1.26
- spatie/pest-plugin-snapshots: ^2.0
This package is auto-updated.
Last update: 2024-08-29 13:22:03 UTC
README
此包提供设置和验证 Cloudflare Turnstile CAPTCHA 响应的辅助工具。
安装
您可以通过 Composer 安装此包
composer require ryangjchandler/laravel-cloudflare-turnstile
然后,您应该在您的 config/services.php
文件中添加以下配置值
return [ // ..., 'turnstile' => [ 'key' => env('TURNSTILE_SITE_KEY'), 'secret' => env('TURNSTILE_SECRET_KEY'), ], ];
访问 Cloudflare 创建您的网站密钥和密钥,并将它们添加到您的 .env
文件中。
TURNSTILE_SITE_KEY="1x00000000000000000000AA"
TURNSTILE_SECRET_KEY="2x0000000000000000000000000000000AA"
用法
在您的布局文件中,使用 @turnstileScripts
Blade 指令包含 Turnstile 脚本。这应该添加到您的文档的 <head>
中。
<html> <head> @turnstileScripts() </head> <body> {{ $slot }} </body> </html>
完成此操作后,您可以在 <form>
内使用 <x-turnstile />
组件以配置您的网站密钥输出适当的标记。
<form action="/" method="POST"> <x-turnstile /> <button> Submit </button> </form>
在服务器上,使用提供的验证规则验证 CAPTCHA 响应。
use Illuminate\Validation\Rule; public function submit(Request $request) { $request->validate([ 'cf-turnstile-response' => ['required', Rule::turnstile()], ]); }
如果您不想使用宏,您可以通过依赖注入或 app()
助手从容器中解析规则实例。
use RyanChandler\LaravelCloudflareTurnstile\Rules\Turnstile; public function submit(Request $request, Turnstile $turnstile) { $request->validate([ 'cf-turnstile-response' => ['required', $turnstile], ]); }
use RyanChandler\LaravelCloudflareTurnstile\Rules\Turnstile; public function submit(Request $request) { $request->validate([ 'cf-turnstile-response' => ['required', app(Turnstile::class)], ]); }
自定义小部件
您可以通过向 <x-turnstile />
组件传递属性来自定义小部件。
有关这些参数的更多信息,请参阅 官方文档。
<form action="/" method="POST"> <x-turnstile data-action="login" data-cdata="sessionid-123456789" data-callback="callback" data-expired-callback="expiredCallback" data-error-callback="errorCallback" data-theme="dark" data-tabindex="1" /> <button> Submit </button> </form>
此包还可以与 Livewire 无缝集成。在验证成功后,wire:model
内指定的属性将使用 Turnstile 令牌更新。
<x-turnstile wire:model="yourModel" />
测试
composer test
更新日志
请参阅 更新日志 了解最近的变化信息。
贡献
请参阅 贡献指南 了解详细信息。
安全漏洞
请参阅 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。