javadle/laravel-cloudflare-turnstile

一个简单的包,帮助集成Cloudflare Turnstile。

dev-main 2022-10-07 21:35 UTC

This package is auto-updated.

Last update: 2024-09-08 01:50:25 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包提供设置和验证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)。有关更多信息,请参阅许可证文件