juriandamen / laramultiauth-v2
为 Laravel 提供多因素认证
Requires
- php: >=7.1
- christian-riesen/base32: ^1.3
- illuminate/auth: ~5.6.0|~5.7.0|~5.8.0|~5.9.0
- illuminate/console: ~5.6.0|~5.7.0|~5.8.0|~5.9.0
- illuminate/container: ~5.6.0|~5.7.0|~5.8.0|~5.9.0
- illuminate/contracts: ~5.6.0|~5.7.0|~5.8.0|~5.9.0
- illuminate/database: ~5.6.0|~5.7.0|~5.8.0|~5.9.0
- illuminate/encryption: ~5.6.0|~5.7.0|~5.8.0|~5.9.0
- illuminate/http: ~5.6.0|~5.7.0|~5.8.0|~5.9.0
- illuminate/routing: ~5.6.0|~5.7.0|~5.8.0|~5.9.0
- illuminate/support: ~5.6.0|~5.7.0|~5.8.0|~5.9.0
Requires (Dev)
- bacon/bacon-qr-code: 2.0.*
- mockery/mockery: ~1.0
- phpunit/phpunit: ~7
- squizlabs/php_codesniffer: 3.*
Suggests
- bacon/bacon-qr-code: 2.0.*
This package is not auto-updated.
Last update: 2024-09-27 09:01:21 UTC
README
LaraMultiAuth 旨在提供最简单易用的接口和钩子,将多因素认证添加到您的 Laravel 应用程序中。
要求
- PHP >= 7.1
- Laravel 框架 >= 5.6.0
安装
使用 Composer 需要此包。
composer require rspeekenbrink/laramultiauth
由于 Laravel 5.5 包自动发现存在,因此不需要您将 ServiceProvider 添加到应用配置中。
如果您不使用自动发现,请将 ServiceProvider 添加到 config/app.php 中的 providers 数组中
RSpeekenbrink\LaraMultiAuth\ServiceProvider::class,
如果您想使用 LaraMultiAuth 门面,请在 app.php 中的门面中添加以下内容
'LaraMultiAuth' => RSpeekenbrink\LaraMultiAuth\Facade::class
使用发布命令将视图和迁移复制到您的本地应用程序中
php artisan vendor:publish --provider="RSpeekenbrink\LaraMultiAuth\ServiceProvider"
然后运行以下命令来运行迁移
php artisan migrate
如果您尚未这样做,请使用以下命令创建默认的 Laravel Auth
php artisan make:auth
然后在 LoginController.php 中添加以下函数
use RSpeekenbrink\LaraMultiAuth\LaraMultiAuth; ... /** * The user has been authenticated. * * @param Request $request * @param mixed $user * @return mixed */ public function authenticated(Request $request, $user) { return LaraMultiAuth::handle($request, $user); }
并将 HasTOTPAuth 特性添加到您的 User 模型中
use RSpeekenbrink\LaraMultiAuth\HasTOTPAuth; ... class User extends Authenticatable { use HasTOTPAuth;
通过在 routes/web.php 中添加以下内容来注册路由
\RSpeekenbrink\LaraMultiAuth\LaraMultiAuth::routes();
用法
路由
运行时禁用
要禁用多认证,您始终可以在 handle 函数之前调用 LaraMultiAuth::disable()
。
设置自定义重定向路由
您可以通过调用以下内容来设置用户登录后将重定向到的路由
LaraMultiAuth::setRedirectPath('/dashboard')
其中 /dashboard
部分是要重定向到的路径。
生成 QR 码
为了设置 TOTP 认证,能够扫描包含密钥的 QR 码通常很方便,而不是在您的设备上重新输入密钥。这很容易实现,您只需要安装 Bacon QR Code Package (> v2.0.0) 和 Imagick PHP 扩展。一旦安装了此包,设置控制器将自动将内联 QR 码 src 传递到设置视图。
自定义路由/控制器
当然可以创建您自己的路由和控制器。为此,只需通过以下方式设置 token 验证的路由
LaraMultAuth::setTOTPRoute('your.route.name');
验证令牌以及设置/删除令牌的源代码可以在 TOTPController 中找到。
测试
安装 composer 开发要求后,可以从项目根目录执行以下命令来测试应用程序
vendor/bin/phpunit
待办事项
为此包还有很多工作要做。此包的目标是为用户添加多种多认证方式。现在它只提供了 TOTP 服务,允许用户通过类似 Google Authenticator 或 Authy 的应用程序启用多认证。未来的计划是扩展包以支持短信服务,并使多认证的实现对开发人员来说更加容易。