artmin96 / filament-jet
这是我打包的filament-jet
Requires
- php: ^8.0
- abanoubnassem/filament-grecaptcha-field: ^0.0.2
- bacon/bacon-qr-code: ^2.0
- filament/filament: ^2.0
- illuminate/contracts: ^9.0|^10.0
- jenssegers/agent: ^2.6
- phpsa/filament-password-reveal: ^1.1
- pragmarx/google2fa: ^8.0
- spatie/laravel-package-tools: ^1.13.5
- spatie/laravel-personal-data-export: ^4.2
- suleymanozev/filament-radio-button-field: ^1.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
- pestphp/pest-plugin-livewire: ^1.0
- pestphp/pest-plugin-parallel: ^0.3
- 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-03 14:20:46 UTC
README
Filament Jet 是 Filament 的身份验证入门套件,为您的下一个 Filament 应用程序提供完美的起点。Filament Jet 为您的应用程序提供了登录、注册、电子邮件验证、两步验证、会话管理、个人数据导出、通过 Laravel Sanctum 的 API 以及可选的团队管理功能。
安装
警告 尝试将 Filament Jet 安装到现有 Filament 应用程序中可能会导致意外的行为和问题。
您可以通过 composer 安装此包
composer require artmin96/filament-jet
安装 Filament Jet 包后,您可以执行以下 Artisan 命令。
php artisan filament-jet:install
此外,您可以使用 --teams
开关来启用团队支持。
安装 Filament Jet 后,您应该安装和构建您的 NPM 依赖项,并迁移您的数据库
npm run dev npm run build php artisan migrate
可选地,您可以使用以下命令发布视图
php artisan vendor:publish --tag="filament-jet-views"
更新 config/filament.php
以指向 Filament Jet 的 Login::class
。
'auth' => [ 'guard' => env('FILAMENT_AUTH_GUARD', 'web'), 'pages' => [ 'login' => \ArtMin96\FilamentJet\Filament\Pages\Auth\Login::class, ], ],
您可能想更改认证卡的尺寸。
use ArtMin96\FilamentJet\Features; 'features' => [ Features::login([ 'card_width' => 'md', ]), ],
显示/隐藏品牌。
use ArtMin96\FilamentJet\Features; 'features' => [ Features::login([ 'has_brand' => true, ]), ],
完整的登录配置。
use ArtMin96\FilamentJet\Features; 'features' => [ Features::login([ 'card_width' => 'md', 'has_brand' => true, 'rate_limiting' => [ 'enabled' => true, 'limit' => 5, ], 'pipelines' => [], ]), ],
个人资料管理
Filament Jet 的个人资料管理功能可以通过用户右上角的用户个人资料导航下拉菜单访问。Filament Jet 动作允许用户更新他们的姓名、电子邮件地址和可选的个人资料照片。
您可能想通过添加注释来禁用 updateProfileInformation
功能。
use ArtMin96\FilamentJet\Features; 'features' => [ // Features::updateProfileInformation(), ],
启用个人资料照片
如果您希望允许用户上传自定义个人资料照片,必须在应用程序的 config/filament-jet.php
配置文件中启用该功能。要启用功能,只需取消注释此文件中 features
配置项中的对应功能条目即可
use ArtMin96\FilamentJet\Features; 'features' => [ Features::profilePhotos(), ],
更多信息请点击链接:Jetstream 个人资料管理
密码更新
您可能想通过添加注释来禁用 updatePasswords
功能。
use ArtMin96\FilamentJet\Features; 'features' => [ // Features::updatePasswords([ // ... // ]), ],
您可能希望在不填写当前密码的情况下更新密码。
use ArtMin96\FilamentJet\Features; 'features' => [ Features::updatePasswords([ 'askCurrentPassword' => false, ]), ],
两步验证
当用户为其账户启用两步验证时,他们应使用免费的 TOTP 验证器应用程序(如 Google Authenticator)扫描提供的 QR 码。此外,他们应在安全密码管理器(如 1Password)中存储列出的恢复代码。
use ArtMin96\FilamentJet\Features; 'features' => [ Features::twoFactorAuthentication([ 'authentication' => [ 'session_prefix' => 'filament.', 'card_width' => 'md', 'has_brand' => true, 'rate_limiting' => [ 'enabled' => true, 'limit' => 5, ], ], 'confirm' => true, 'toggleRecoveryCodesVisibilityWithConfirmPassword' => true, // 'window' => 0, ]), ],
您可能想通过添加注释来禁用 twoFactorAuthentication
功能。
use ArtMin96\FilamentJet\Features; 'features' => [ // Features::twoFactorAuthentication([ // ... // ]), ],
您可能想在不进行密码确认的情况下切换恢复代码的可见性
use ArtMin96\FilamentJet\Features; 'features' => [ Features::twoFactorAuthentication([ // ... 'toggleRecoveryCodesVisibilityWithConfirmPassword' => false, ]), ],
浏览器会话
此功能利用 Laravel 内置的 Illuminate\Session\Middleware\AuthenticateSession
中间件安全地注销其他以当前用户身份认证的浏览器会话。
注意 要在 Filament Jet 中使用浏览器会话管理,请确保您的会话配置的
driver
(或SESSION_DRIVER
环境变量)设置为 'database'。
您可能想通过添加注释来禁用 logoutOtherBrowserSessions
功能。
use ArtMin96\FilamentJet\Features; 'features' => [ // Features::logoutOtherBrowserSessions(), ],
删除账户
您可能想通过添加注释来禁用 accountDeletion
功能。
use ArtMin96\FilamentJet\Features; 'features' => [ // Features::accountDeletion(), ],
下载您的信息
您可以从个人资料中下载您的信息副本。一旦您的文件可用,您就可以将其下载到您的设备上。
您可能想通过添加注释来禁用personalDataExport
功能。
use ArtMin96\FilamentJet\Features; 'features' => [ // Features::personalDataExport([ // 'export-name' => 'personal-data', // 'add' => [ // ['nameInDownload' => '', 'content' => []] // ], // 'add-files' => [ // ['pathToFile' => '', 'diskName' => '', 'directory' => ''] // ], // ]), ],
add
:第一个参数是zip文件内部文件的名称。第二个参数是应放入该文件的内容。如果您在这里传递一个数组,我们将将其编码为JSON。add-file
:第一个参数是文件的路径,该文件将被复制到zip文件中。您还可以将磁盘名称作为第二个参数添加。
export-name
将仅影响作为响应发送给用户的下载名称,而不是存储在磁盘上的zip文件名称。
这使用了spatie/laravel-personal-data-export包。点击链接获取更多信息。
团队
如果您使用--teams
选项安装了Filament Jet,您的应用程序将构建以支持团队创建和管理。
创建团队
团队设置
禁用团队功能
如果您想禁用团队功能,请从config/filament-jet.php
配置中删除此行。
use ArtMin96\FilamentJet\Features; 'features' => [ Features::teams([ 'invitations' => false, 'middleware' => [], ]), ],
如果您想添加其他中间件,请填写中间件数组。
点击此链接获取更多信息:Jetstream Teams
邀请
默认情况下,Filament Jet将简单地将您指定的任何现有应用程序用户添加到您的团队中。要开始,请在启用应用程序的“teams”功能时传递invitations
选项。这可以通过修改应用程序的config/filament-jet.php
配置文件的features
数组来完成。
点击此链接获取更多信息:Jetstream Teams
API
Laravel Sanctum为SPA(单页应用程序)、移动应用程序和简单的基于令牌的API提供了一个轻量级的认证系统。Sanctum允许您的应用程序的每个用户为他们的账户生成多个API令牌。这些令牌可以授予能力/权限,指定令牌允许执行哪些操作。
启用API支持
如果您的应用程序将提供可能由第三方消费的API,您必须启用Filament Jet的API功能。为此,您应该在应用程序的config/filament-jet.php
配置文件的features
配置选项中取消注释相关条目。
use ArtMin96\FilamentJet\Features; 'features' => [ Features::api(), ],
点击此链接获取更多信息:Jetstream API
认证
注册
要求服务条款/隐私政策批准
许多应用程序要求用户在注册时接受他们的服务条款/隐私政策。Filament Jet允许您轻松地为您的应用程序启用此要求,并提供了使用Markdown编写这些文档的便捷方式。
要开始,请启用应用程序的config/filament-jet.php
配置文件中的此功能。
use ArtMin96\FilamentJet\Features; 'features' => [ Features::termsAndPrivacyPolicy(), ],
接下来,您可以通过修改应用程序的resources/markdown/terms.md
和resources/markdown/policy.md
文件来编写服务条款/隐私政策文档。
禁用注册功能
您可能想通过添加注释来禁用registration
功能。
use ArtMin96\FilamentJet\Features; 'features' => [ // Features::registration([ // 'page' => \ArtMin96\FilamentJet\Filament\Pages\Auth\Register::class, // 'terms_of_service' => \ArtMin96\FilamentJet\Http\Livewire\TermsOfService::class, // 'privacy_policy' => \ArtMin96\FilamentJet\Http\Livewire\PrivacyPolicy::class, // 'card_width' => 'md', // 'has_brand' => true, // 'rate_limiting' => [ // 'enabled' => true, // 'limit' => 5, // ], // ]), ],
登录
重置密码
禁用重置密码功能
您可能想通过添加注释来禁用resetPasswords
功能。
use ArtMin96\FilamentJet\Features; 'features' => [ // Features::resetPasswords([ // 'request' => [ // 'page' => \ArtMin96\FilamentJet\Filament\Pages\Auth\PasswordReset\RequestPasswordReset::class, // 'card_width' => 'md', // 'has_brand' => true, // 'rate_limiting' => [ // 'enabled' => true, // 'limit' => 5, // ], // ], // 'reset' => [ // 'page' => \ArtMin96\FilamentJet\Filament\Pages\Auth\PasswordReset\ResetPassword::class, // 'card_width' => 'md', // 'has_brand' => true, // 'rate_limiting' => [ // 'enabled' => true, // 'limit' => 5, // ], // ], // ]), ],
两步验证挑战
扩展和覆盖组件
认证流程中的所有页面都是用于与Filament Forms一起工作的全页Livewire组件。因此,您可以轻松扩展任何组件以添加您自己的字段和操作。
您可能想更改注册组件
use ArtMin96\FilamentJet\Features; 'features' => [ Features::registration([ 'page' => \ArtMin96\FilamentJet\Filament\Pages\Auth\Register::class, 'terms_of_service' => \ArtMin96\FilamentJet\Http\Livewire\TermsOfService::class, 'privacy_policy' => \ArtMin96\FilamentJet\Http\Livewire\PrivacyPolicy::class, 'card_width' => 'md', 'has_brand' => true, 'rate_limiting' => [ 'enabled' => true, 'limit' => 5 ], ]), ],
您可能想更改服务条款或隐私政策组件
use ArtMin96\FilamentJet\Features; 'features' => [ Features::registration([ // ... 'terms_of_service' => YourTermsOfServiceComponent::class, 'privacy_policy' => YourPrivacyPolicyComponent::class, // ... ]), ],
您可能想更改重置密码页面
use ArtMin96\FilamentJet\Features; 'features' => [ Features::resetPasswords([ 'request' => [ 'page' => \ArtMin96\FilamentJet\Filament\Pages\Auth\PasswordReset\RequestPasswordReset::class, // ... ], 'reset' => [ 'page' => \ArtMin96\FilamentJet\Filament\Pages\Auth\PasswordReset\ResetPassword::class, // ... ], ]), ],
电子邮件验证
要开始,请验证您的App\Models\User
模型实现了Illuminate\Contracts\Auth\MustVerifyEmail
合约。
use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements MustVerifyEmail { // ... }
“丝印机”支持要求新注册用户验证他们的电子邮件地址。但是,默认情况下,此功能的支持是禁用的。要启用此功能,您应该在应用程序的配置文件 config/filament-jet.php
中取消注释 features
配置项的相关条目
use ArtMin96\FilamentJet\Features; 'features' => [ Features::emailVerification([ // ... ]), ],
您可能想要更改验证检查页面或电子邮件验证控制器
use ArtMin96\FilamentJet\Features; 'features' => [ Features::emailVerification([ 'page' => \ArtMin96\FilamentJet\Filament\Pages\Auth\EmailVerification\EmailVerificationPrompt::class, 'controller' => \ArtMin96\FilamentJet\Http\Controllers\Auth\EmailVerificationController::class, 'card_width' => 'md', 'has_brand' => true, 'rate_limiting' => [ 'enabled' => true, 'limit' => 5 ], ]), ],
用法
filament-jet
配置文件包含一个 features
配置数组,您可以在其中启用或禁用您想要的任何功能。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 变更日志
贡献
有关详细信息,请参阅 贡献指南
安全漏洞
致谢
本软件包受到 Laravel 的 jetstream 软件包的启发 。
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件