moontechs/filament-webauthn

Filament webauthn 登录和注册

0.1.8 2022-10-26 20:18 UTC

This package is auto-updated.

Last update: 2024-09-19 02:42:26 UTC


README

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

为您的 Filament 应用程序提供无密码登录。Web 认证服务端和前端组件。

该软件包包含以下组件

  • 注册按钮和小部件
  • 登录表单扩展,用于跳转到 webauthn 登录页面
  • 独立的路由和页面,带有 webauthn 登录表单

应与 HTTPS 一起工作,而不仅仅是 localhost。

安装

您可以通过 composer 安装此软件包

composer require moontechs/filament-webauthn

您应该使用以下命令发布并运行迁移

php artisan vendor:publish --tag="filament-webauthn-migrations"
php artisan migrate

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="filament-webauthn-config"

这是已发布配置文件的内容

return [
    'login_page_url' => '/webauthn-login',
    'user' => [
        'auth_identifier' => 'email', // column in users table with unique user id
    ],
    'widget' => [
        'column_span' => '',
    ],
    'register_button' => [
        'icon' => 'heroicon-o-key',
        'class' => 'w-full',
    ],
    'login_button' => [
        'icon' => 'heroicon-o-key',
        'class' => 'w-full',
    ],
    'auth' => [
        'relying_party' => [
            'name' => env('APP_NAME'),
            'origin' => env('APP_URL'),
            'id' => env('APP_HOST', parse_url(env('APP_URL'))['host']),
        ],
        'client_options' => [
            'timeout' => 60000,
            'platform' => '', // available: platform, cross-platform, or leave empty
            'attestation' => 'direct', // available: direct, indirect, none
            'user_verification' => 'required', // available: required, preferred, discouraged
        ],
    ],
];

可选地,您可以使用以下命令发布视图

php artisan vendor:publish --tag="filament-webauthn-views"

您可以使用以下命令发布翻译文件

php artisan vendor:publish --tag="filament-webauthn-translations"

使用方法

  • 安装软件包。
  • 发布迁移并迁移。

注册小部件

只有已登录用户才能注册设备,以便将来使用。

  • 注册 Moontechs\FilamentWebauthn\Widgets\WebauthnRegisterWidget::class 小部件。将其添加到 Filament 配置中的 widgets.register 数组。

widget

自定义

  • 发布配置文件
  • widget.column_span - 小部件宽度 (文档)

注册按钮(无小部件)

  • 在任何视图中添加 <livewire:webauthn-register-button/>

自定义

  • 发布配置文件
  • register_button.icon - 选择任何可用的图标
  • register_button.class - 添加更多类或更改默认类

跳转到登录页面按钮

  • 发布 Filament 登录页面视图 php artisan vendor:publish --tag=filament-views
  • 在登录表单末尾添加 <x-filament-webauthn::login-form-extension />

如果您不想使用此按钮,您可以使用简单的重定向到命名路由 filament-webauthn.login

redirect to login page

登录表单

自定义

  • 发布配置文件
  • login_button.icon - 选择任何可用的图标
  • login_button.class - 添加更多类或更改默认类

login

测试

composer test

致谢

许可

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