sicaboy/laravel-mfa

一个带有中间件的 Laravel 多因素认证(MFA/2FA)包。

1.3 2023-04-28 12:41 UTC

This package is auto-updated.

Last update: 2024-09-28 16:03:50 UTC


README

Latest Stable Version License Total Downloads

简介

此包曾是 sicaboy/laravel-security 的一部分。后来移至此独立仓库。

此包为您的 Laravel 项目提供了保护带有 MFA 的页面的中间件。

安装

需求

要获取 Laravel MFA 的最新版本,只需运行

composer require sicaboy/laravel-mfa

然后执行 vendor publish

php artisan vendor:publish --provider="Sicaboy\LaravelMFA\LaravelMFAServiceProvider"

发布后,您可以在以下位置修改模板和配置

app/config/laravel-mfa.php
resources/views/vendor/laravel-mfa/

如果您使用的是 Laravel < 5.5,您需要注册服务提供者。打开 config/app.php 文件,并将以下内容添加到 providers 数组中

Siaboy\LaravelMFA\LaravelMFAServiceProvider::class,

用法

通用用法

将中间件附加到您的路由中,以保护您的页面。

Route::middleware(['mfa'])->group(function () {
    ...
});

使用不同的 Auth 对象

如果您使用不同的 Auth 对象,例如用户认证和管理员认证,您可以按照以下方法为管理员页面启用 MFA。

  • 将中间件附加到您的路由中。
Route::middleware(['mfa:admin'])->group(function () {
    ...
});
  • 在您的配置文件 config/laravel-mfa.php 中添加一个分组
return [
    'default' => [
        ...
    ],
    'group' 
        'admin' => [ // Example, when using middleware 'mfa:admin'. Attributes not mentioned will be inherit from `default` above
            'login_route' => 'admin.login',
            'auth_user_closure' => function() {
                return \Encore\Admin\Facades\Admin::user();
            },
        ],
        'other_name' => [ // Middleware 'mfa:other_name'
            ...
        ]
    ],

队列

如果您的应用程序有一个 artisan queue:work 守护进程正在运行,您可以通过更改配置来在队列中发送认证码。

return [
    'default' => [
        ...
        'email' => [
            'queue' => true,
        ...
        ]
    ]
]

待办事项

  • 为特定用户打开 MFA(基于数据库字段)

变更日志

请参阅 CHANGELOG 了解最近更改的更多信息。

贡献

请随时fork此包,并通过提交拉取请求来增强功能。

许可

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