sicaboy / laravel-mfa
一个带有中间件的 Laravel 多因素认证(MFA/2FA)包。
1.3
2023-04-28 12:41 UTC
Requires
- php: ^7.1|^8.0
- illuminate/support: ^5.7|^6|^7|^8|^9|^10
Requires (Dev)
- phpunit/phpunit: ~4.0||~5.0
- scrutinizer/ocular: ~1.1
- squizlabs/php_codesniffer: ~2.3
README
简介
此包曾是 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)。有关更多信息,请参阅 许可文件。