arkecosystem/fortify

该软件包已被放弃,不再维护。没有建议的替代软件包。

Laravel认证框架。由Laravel Fortify提供支持。


README

banner.png

Laravel认证框架。由Laravel Fortify提供支持。

安装

  1. 使用composer安装:composer require arkecosystem/fortify
  2. 使用以下命令发布所有资产/视图:php artisan vendor:publish --provider="ARKEcosystem\Fortify\FortifyServiceProvider" --tag=config --tag=images
  3. 禁用所有fortify软件包的自动发现。此步骤是必需的,这样我们就可以控制laravel/fortifyarkecosystem/fortify的加载顺序。
"extra": {
    "laravel": {
        "dont-discover": ["arkecosystem/fortify", "laravel/fortify"]
    }
},
  1. 所需图片

项目需要提供图片:resources/images/auth/verify-email.svg

此图片从fortify中省略,以防止被覆盖,但允许项目自定义。

将来,如果有多个实例需要图片,则配置文件可能是一个更好的选择。

  1. 按照此顺序注册服务提供者。这将确保我们的包可以覆盖laravel/fortify创建的任何绑定。
Laravel\Fortify\FortifyServiceProvider::class,
ARKEcosystem\Fortify\FortifyServiceProvider::class,
  1. 使用config/fortify.php文件中的username_alt设置启用或禁用用户名或电子邮件登录/注册
<?php

return [
    // ...
    'username_alt' => 'username',
    // Or set that setting to `null` so the user can only login/register with email:
    // 'username_alt' => null,
    // ...
];

注意:如果您使用username_alt设置,请确保您的用户表中已有该列。

注意:目前fortify打算与您的配置中的'username' => 'email'一起使用,因为它在创建新用户时期望设置email属性。

  1. AppServiceProvider中注册用于认证页面的数据包
use Konceiver\DataBags\DataBag;

...

public function boot()
{
    ...

    $this->registerDataBags();
}

private function registerDataBags(): void
{
    DataBag::register('fortify-content', [
        'register' => [
            'pageTitle' => '',
            'title' => '',
            'description' => '',
        ],
        'login' => [
            'pageTitle' => '',
            'title' => '',
            'description' => '',
            // Optional
            // 'signupLink'  => '',
        ],
        'password' => [
            'reset' => [
                'pageTitle' => '',
            ],
            'request' => [
                'pageTitle' => '',
            ],
        ],
        'verification' => [
            'notice' => [
                'pageTitle' => '',
            ],
            'verify' => [
                'pageTitle' => '',
            ],
            'send' => [
                'pageTitle' => '',
            ],
        ],
        'two-factor' => [
            'login' => [
                'pageTitle' => '',
            ],
        ],
    ]);
}

双因素认证

底层我们使用Pragmarx Google2fa-laravel软件包。

对于如使用SVG渲染代替默认的Imagemagick生成QR-Code之类的自定义配置,您可以发布默认配置并根据需要调整。

  1. 将文件下载JS添加到Mix文件
.copy('vendor/arkecosystem/ui/resources/assets/js/file-download.js', 'public/js/file-download.js')
  1. 在需要它的任何页面上包含文件(例如账户设置)
@push('scripts')
    <script src="{{ mix('js/file-download.js')}}"></script>
@endpush
  1. 构建资产
yarn prod

所需图片

密码确认模态框

密码确认模态框需要将图片添加到路径resources/images/auth/confirm-password.svg,供使用该模态框的项目使用。