maben-dev / laravel-twofactor
Laravel 两因素认证
Requires
- php: >=7.2
- bacon/bacon-qr-code: ^2.0
- pragmarx/google2fa: ^7.0
This package is auto-updated.
Last update: 2024-09-24 20:41:43 UTC
README
composer require maben-dev/laravel-twofactor
php artisan migrate
现在您需要让您的用户模型使用 MabenDev\TwoFactor\Traits\HasTwoFactor
完成!
用法
在用户模型中,您可以使用 $user->setupTwoFactor
函数,使用此函数您可以为用户提供一个 2fa 秘密。
从现在起,每次用户会话丢失并且用户尝试访问带有 TwoFactor 中间件的路线时,都需要提供 2fa 代码。
要删除他的 2fa,只需执行 $user->twoFactor->delete()
。
要编辑视图、本地化和配置,请执行:php artisan vendor:publish --provider="MabenDev\TwoFactor\ServiceProvider"
工作原理
如果用户访问带有 TwoFactor 中间件的路线,中间件将检查用户是否已登录,如果没有则不执行任何操作。
如果用户已登录并且具有所需的会话,则中间件将不执行任何操作。
如果用户没有 2fa,则中间件不执行任何操作。
如果其他任何情况,中间件将重定向用户到由包创建的 2fa-form 路由。
在 2fa 表单中,如果这是用户第一次使用,用户将看到二维码,之后二维码将不再显示。
用户提供 2fa 代码,包将检查它,如果代码正确,则用户将被重定向回他之前的位置,或配置的重定向_url,如果没有有效网址则重定向到 /home。
如果用户提供错误的代码,他将看到一个错误并可以再次尝试。
重要提示
在您的用户模型中有些函数可以帮助您定制用户体验,但请注意,getQr 函数在 2fa 已经设置的情况下不应使用。
秘密不应在任何时候被任何人看到,除了第一次设置时用户本人。
如果以任何方式秘密被泄露,请删除它并设置一个新的 2fa 秘密。