artmin96/filament-jet

这是我打包的filament-jet


README

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

Filament Jet cover art

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 动作允许用户更新他们的姓名、电子邮件地址和可选的个人资料照片。

Filament Jet profile information art Filament Jet update password art Filament Jet two factor art Filament Jet two factor finish enabling art Filament Jet two factor enabled art Filament Jet two factor secret codes hidden art Filament Jet browser sessions art Filament Jet delete account art Filament Jet download information art Filament Jet download information ready art

您可能想通过添加注释来禁用 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,您的应用程序将构建以支持团队创建和管理。

创建团队

Filament Jet create team art

团队设置

Filament Jet update team name art Filament Jet add team member art Filament Jet pending team invitations art Filament Jet team members art Filament Jet manage team member role art Filament Jet delete team art

禁用团队功能

如果您想禁用团队功能,请从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

Filament Jet api token create art Filament Jet api token display art Filament Jet api token list art Filament Jet api token permissions art

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 register art

要求服务条款/隐私政策批准

许多应用程序要求用户在注册时接受他们的服务条款/隐私政策。Filament Jet允许您轻松地为您的应用程序启用此要求,并提供了使用Markdown编写这些文档的便捷方式。

要开始,请启用应用程序的config/filament-jet.php配置文件中的此功能。

use ArtMin96\FilamentJet\Features;

'features' => [
    Features::termsAndPrivacyPolicy(),
],

接下来,您可以通过修改应用程序的resources/markdown/terms.mdresources/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,
    //     ],
    // ]),
],

登录

Filament Jet login art

重置密码

Filament Jet reset password art Filament Jet reset password sent art Filament Jet reset password update art

禁用重置密码功能

您可能想通过添加注释来禁用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 Jet two factor code art Filament Jet two factor recovery-code art

扩展和覆盖组件

认证流程中的所有页面都是用于与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)。有关更多信息,请参阅 许可证文件