matondo/twofactorauth

Laravel 包,用于添加增强安全性的双因素认证(2FA)

dev-main 2024-09-30 05:56 UTC

This package is auto-updated.

Last update: 2024-09-30 06:01:29 UTC


README

Matondo TwoFactorAuth 是一个用于向 Laravel 应用程序添加双因素认证(2FA)的包。此包提供全面的认证过程,包括登录、密码重置、双因素认证和其他基本功能。它提供了一个易于使用的界面来启用 2FA,在不复杂化认证流程的同时增强安全性。

认证码通过电子邮件和短信发送,支持葡萄牙语和英语国际化。应用程序的默认语言自动根据 config/app.php(locale) 中的配置设置。默认情况下,该包附带基于 Bootstrap 的认证界面视图,提供干净现代的设计。然而,该包高度可定制,如果您需要调整设计以匹配应用程序的主题或品牌,则可以轻松修改外观。与其他流行的包(如 Laravel Breeze 和 Bootstrap)相比,该包通过提供双因素认证,为应用程序访问提供了额外的安全层。

安装

要安装此包,请使用 Composer

composer require matondo/twofactorauth

服务提供商注册

安装后,在 config/app.php 文件中的 providers 部分注册 TwoFactorAuthServiceProvider

'providers' => [
    // Other providers
    Matondo\TwoFactorServiceProvider::class,
],

发布包文件

接下来,使用以下命令发布包文件

php artisan vendor:publish --provider="Matondo\TwoFactorServiceProvider"

模型:用于双因素认证所需模型。控制器:管理认证逻辑的控制器。中间件:保护需要 2FA 的路由。视图:认证过程所需的基于 Bootstrap 的视图。路由:包含双因素认证新路由的路由文件。

如果想要使用不同的 CSS 框架或修改布局,可以轻松编辑默认的认证视图。只需更新发布的视图文件以匹配您的设计偏好。

包含路由

将以下内容添加到您的 routes/web.php 文件中,以包含新发布的路由

require base_path('routes/twofactorauth.php');

运行迁移

在运行迁移之前,请确保在 .env 文件中正确设置了环境变量,以避免数据库错误。这包括配置数据库连接设置。

此外,配置电子邮件设置以确保在认证过程中可以发送电子邮件,例如在密码重置或 2FA 代码验证期间。这些设置包括

MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls

配置完成后,运行以下命令以迁移必要的表

php artisan migrate

Redis 和队列的环境设置

为确保电子邮件和消息队列的正常运行,请在 .env 文件中配置以下 Redis 设置

REDIS_CLIENT=predis
BROADCAST_DRIVER=log
CACHE_DRIVER=redis
FILESYSTEM_DISK=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis
SESSION_LIFETIME=120

这些设置启用 Redis 管理队列、会话和缓存,提高 2FA 流程的性能。

Twilio SMS 配置

要发送基于短信的认证码,请在 .env 文件中使用以下示例凭据配置 Twilio(使用 Twilio 控制台中您自己的 Twilio 凭据替换)

TWILIO_SID=your_twilio_sid
TWILIO_TOKEN=your_twilio_token
TWILIO_FROM=your_twilio_phone_number

要获取 Account SID、Auth Token 和 Twilio 电话号码,请访问 Twilio 控制台:转到 https://console.twilio.com/

中间件注册

在 app/Http/Kernel.php 文件中的 $routeMiddleware 数组下注册 TwoFactorVerify 中间件

protected $routeMiddleware = [
    // Other middlewares
    '2fa' => \App\Http\Middleware\TwoFactorVerify::class,
];

使用中间件保护受保护路由

将 2fa 中间件应用于需要双因素认证的路由

Route::group(['middleware' => '2fa'], function () {
    Route::get('/home', function () {
        // Dashboard content
    });
});

国际化支持

该软件包支持国际化(i18n),允许您将区域设置为英语或巴西葡萄牙语。要更改区域设置,请调整config/app.php文件中的app.locale设置。

'locale' => 'pt_BR', // Default: en

重要:运行队列

为确保电子邮件和消息能够高效处理,您应该运行以下命令

php artisan queue:work

如果您处于测试环境,请确保服务器已配置为运行队列,以便及时发送通知。

访问登录页面

完成所有步骤后,您可以通过访问/login路由来启动认证过程。首次使用凭据登录后,系统将通过短信发送2FA代码,用户必须输入此代码才能完成登录过程,这为系统提供了额外的安全层。

结论

Matondo TwoFactorAuth简化了向您的Laravel应用程序添加完整认证流程的过程,包括登录、密码重置、双因素认证和国际化的功能。该软件包还提供基于Bootstrap的认证UI,如需自定义,可以轻松进行调整。

许可证

本项目采用MIT许可证。有关详细信息,请参阅LICENSE文件。

联系我们

LinkedIn: matondojoao | WhatsApp: https://api.whatsapp.com/send?phone=244947224896&text=Hello%21+I+am+interested+in+collaborating+on+projects... 。欢迎联系项目合作、分享想法或建立联系的机会!