afatmustafa/filamentv3-turnstile

一个插件,帮助您将 Cloudflare Turnstile 集成到 Filament 面板中。

v1.1 2024-04-15 10:15 UTC

This package is auto-updated.

Last update: 2024-09-17 10:17:03 UTC


README

一个插件,帮助您将 Cloudflare Turnstile 集成到 Filament 面板中。

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

Filament V3 Cloudflare Turnstile Integration

此扩展利用 Laravel Turnstile 作为底层。有关详细信息,请参阅项目页面上的 README
感谢 coderflexx 的出色工作。

安装

您可以通过 composer 安装此包

composer require afatmustafa/filamentv3-turnstile

入门

要将 Cloudflare Turnstile 集成到您的应用程序中,您首先需要从您的 Cloudflare 控制台 获取 SiteKeySecretKey

一旦您获得了 密钥,请将 TURNSTILE_SITE_KEYTURNSTILE_SECRET_KEY 字段填写到您的 .env 配置文件中。

TURNSTILE_SITE_KEY=2x00000000000000000000AB
TURNSTILE_SECRET_KEY=2x0000000000000000000000000000000AA


出于测试目的,Cloudflare 提供了 Dummy 网站密钥和密钥。如有需要,请考虑使用它们。

TURNSTILE_SITE_KEY=1x00000000000000000000AA
TURNSTILE_SECRET_KEY=1x0000000000000000000000000000000AA

更多 dummy 密钥,请参阅 Cloudflare 文档

表单组件使用

现在使用 Turnstile 非常简单,您只需要遵循下面的代码即可

use Afatmustafa\FilamentTurnstile\Forms\Components\Turnstile;

    Turnstile::make('turnstile')
        ->theme('light') // Supported themes: light, dark
        ->size('normal') // Supported sizes: normal, compact
        ->language('en-US') // Supported languages: ar-eg,de,en,es,fa,fr,id,it,ja,ko,nl,pl,pt-br,ru,tr,uk,zh-cn and zh-tw

将 Turnstile 验证码集成到 Filament 登录页面

要将 Turnstile 验证码无缝集成到 Filament 登录页面,请按照以下步骤操作

  1. app/Filament\Pages\Auth 目录下创建一个新的 Login 类,并从 Filament\Pages\Auth\Login 类扩展。
    覆盖 form 方法,并将 Turnstile 组件添加到表单模式中。
namespace App\Filament\Pages\Auth;

use Filament\Forms\Form;
use Afatmustafa\FilamentTurnstile\Forms\Components\Turnstile;

class Login extends \Filament\Pages\Auth\Login
{
    public function form(Form $form): Form
    {
        return $form
            ->schema([
                $this->getEmailFormComponent(),
                $this->getPasswordFormComponent(),
                $this->getRememberFormComponent(),
                Turnstile::make('turnstile')
                    ->theme('light')
                    ->size('normal')
                    ->language('en-US'),
            ])
            ->statePath('data');
    }
}


2. 在您的 PanelProvider 文件中,覆盖 login 方法,并返回新创建的 Login 类。

namespace App\Providers\Filament;

...
use App\Filament\Pages\Auth\Login;
...

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            ->default()
            ->id('admin')
            ->path('app')
            ->login(Login::class)
            ...
    }
}


3. 完成!现在您应该在登录页面上看到 Turnstile 验证码。[登录页面演示](https://raw.githubusercontent.com/afatmustafa/filamentv3-turnstile/3.x/art/login-page-demo.jpg)

测试

composer test

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

有关详细信息,请参阅 CONTRIBUTING

安全漏洞

请查阅 我们的安全策略,了解如何报告安全漏洞。

致谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件