afatmustafa / filamentv3-turnstile
一个插件,帮助您将 Cloudflare Turnstile 集成到 Filament 面板中。
Requires
- php: ^8.1
- coderflex/laravel-turnstile: ^2.0
- filament/filament: ^3.0
- illuminate/contracts: ^11.0
- spatie/laravel-package-tools: ^1.16.4
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^8.1
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
README
一个插件,帮助您将 Cloudflare Turnstile 集成到 Filament 面板中。
此扩展利用 Laravel Turnstile 作为底层。有关详细信息,请参阅项目页面上的 README。
感谢 coderflexx 的出色工作。
安装
您可以通过 composer 安装此包
composer require afatmustafa/filamentv3-turnstile
入门
要将 Cloudflare Turnstile 集成到您的应用程序中,您首先需要从您的 Cloudflare 控制台 获取 SiteKey
和 SecretKey
。
一旦您获得了 密钥,请将 TURNSTILE_SITE_KEY
和 TURNSTILE_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 登录页面,请按照以下步骤操作
- 在
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)。有关更多信息,请参阅 许可文件。