javadle/ laravel-cloudflare-turnstile
一个简单的包,帮助集成Cloudflare Turnstile。
dev-main
2022-10-07 21:35 UTC
Requires
- php: ^8.0
- illuminate/contracts: ^9.0
- spatie/laravel-package-tools: ^1.13.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-09-08 01:50:25 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>中使用@turnstile指令输出带有配置的站点密钥的适当标记。
<form action="/" method="POST"> @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)], ]); }
测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全漏洞
有关报告安全漏洞的详细信息,请参阅我们的安全策略。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。