maben-dev/laravel-twofactor

Laravel 两因素认证

1.0.1 2019-12-24 09:35 UTC

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 秘密。