teh9/laravel2fa

为 Laravel 实现的一个简单的通过 Telegram 进行两步验证的包

v1.1.1 2023-05-08 19:14 UTC

This package is auto-updated.

Last update: 2024-09-08 22:17:32 UTC


README

使用 Telegram 为 Laravel 实现的两步验证的简单实现。

Packagist Downloads Packagist Version Packagist License

安装

您可以通过 composer 安装此包

composer require teh9/laravel2fa

发布包的配置、迁移和本地化文件

php artisan vendor:publish --provider="Teh9\Laravel2fa\TelegramTwoFactorServiceProvider"

用法

设置

在您的项目文件夹中的 config/laravel2fa.php,提供机器人 API 密钥,可以通过官方的 Telegram 机器人 @BotFather 获取

'api_key' => 'YOUR_BOT_API_KEY'

迁移

发布后,您将有一个迁移,执行以下操作:

php artisan migrate

将为 users 表添加 2 列,如果您想更改表,可以在迁移文件中这样做:database/migrations/add_two_factor_columns_to_model_table.php

chat_id - big integer|nullable|deafult-null
secret  - string     |nullable|default-null

语言

在文件 /resources/lang/[lang]/2fa.php 中提供了 2 种语言

  • en;
  • ru;

您可以添加任何其他语言,但请注意现有的实现,以确保正确性

准备用户模型

class User extends Model implements TelegramTwoFactor
{
    use HasAuth;
}

将代码保存到数据库,并通过 Telegram 发送带有代码的通知

$user = User::first();
// Might be passed 2 params
// 1-st preffered length of code by default 6
// 2-nd is language by default en
$user->sendCode(4, 'ru'); // return boolean

验证代码

// The received code from the telegram must be passed to the method, which is described below
$code = 'CODE_FROM_TELEGRAM'; 
$user = User::first();
$user->validateCode($code); // return boolean

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件