tech-ed/simpl-otp

一个简单且轻量级的Laravel包,用于生成和验证一次性密码(OTPs),增强Laravel应用程序的认证安全性。

v1.0.1 2024-08-24 19:00 UTC

This package is auto-updated.

Last update: 2024-09-05 15:05:17 UTC


README

SimplOtp是一个简化Laravel应用程序中一次性密码(OTPs)生成和验证的Laravel包。此包受ichtrojan/laravel-otp的启发,但进行了修改,以使其更具灵活性,并包括Blade前端框架。

安装

您可以通过Composer安装SimplOtp包

composer require tech-ed/simpl-otp

安装包后,运行迁移命令以创建必要的数据库表

php artisan migrate

包将自动注册其服务提供者和外观。

配置

要自定义SimplOtp的行为,您可以使用以下Artisan命令发布其配置文件

php artisan vendor:publish --provider="TechEd\SimplOtp\SimplOtpServiceProvider" --tag="config"

此命令将配置文件config/simplotp.php复制到您的应用程序的config目录,您可以根据需要修改它。

配置选项

  • 成功消息:自定义OTP生成和验证的成功消息。
  • 错误消息:自定义各种失败场景的错误消息。
  • OTP设置:配置OTP长度、类型(数字或字母数字)以及有效期限(分钟)。
return [
    'success_messages' => [
        'otp_generated' => 'OTP generated',
        'otp_valid' => 'OTP is valid',
    ],
    'error_messages' => [
        'invalid_type' => 'Invalid OTP type',
        'expired_otp' => 'OTP Expired',
        'invalid_otp' => 'Invalid OTP',
        'otp_not_found' => 'OTP not found',
    ],
    'otp' => [
        'length' => 4,
        'type' => 'numeric',
        'validity' => 15,
    ]
];

用法

后端

生成OTP

您可以使用SimplOtp::generate()方法生成OTP。它需要一个与OTP关联的标识符。

use TechEd\SimplOtp\SimplOtp;

$identifier = 'awesome@user.com';
$otp = SimplOtp::generate($identifier);

验证OTP

要验证OTP,请使用SimplOtp::validate()方法,传递标识符和OTP令牌。

$identifier = 'awesome@user.com';
$token = '1234'; // OTP token to validate
$result = SimplOtp::validate($identifier, $token);

前端框架

此包包括OTP生成和验证的Blade视图。

  1. 发布前端文件
php artisan simplotp:publish-frontend
  1. 包自动注册必要的路由。您可以在以下位置访问OTP生成和验证表单:

    • 生成OTP:/simplotp/generate
    • 验证OTP:/simplotp/verify
  2. 视图是自包含的,并包括基本的Bootstrap样式。如果您想自定义视图,您可以在resources/views/vendor/simplotp/中找到它们。

  3. 要使用视图在自己的控制器或路由中,您可以使用

return view('simplotp::generate');
return view('simplotp::verify');
  1. 如果您想将视图集成到现有的布局中,您可以修改已发布的视图。例如,如果您有一个名为app.blade.php的布局文件,您可以更新视图以扩展此布局
@extends('layouts.app')

@section('content')
    // The existing view content goes here
@endsection

请记住调整内容部分名称(@section('content'))以匹配布局的内容区域。

  1. 视图使用Bootstrap进行样式设计。如果您未在应用程序中使用Bootstrap,您可以删除Bootstrap链接并添加自己的CSS样式。

自定义

您可以通过编辑配置文件config/simplotp.php来自定义成功和错误消息。此外,您可以调整OTP设置以满足应用程序的需求。

生成电子邮件通知

要创建通知文件夹内的基本电子邮件模板,请运行以下Artisan命令

php artisan vendor:publish --provider="TechEd\SimplOtp\SimplOtpServiceProvider" --tag="email"

此命令允许您根据具体要求自定义电子邮件通知模板。

电子邮件通知示例

要发送OTP通过电子邮件,您可以使用Laravel内置的通知系统以及提供的EmailOtpVerification通知类。

$user = auth()->user();
$otp = SimplOtp::generate($user->email);
if($otp->status === true){
    $user->notify(new EmailOtpVerification($otp->token));
}
return $otp;

此示例为认证用户的电子邮件地址生成OTP,并使用EmailOtpVerification通知类通过电子邮件发送。

支持开发者

如果SimplOtp对您有所帮助,并且您想支持其开发,请考虑为开发者买杯咖啡!☕

"Buy Me A Coffee"

您的支持非常受珍视,有助于维护和改进SimplOtp以服务于Laravel社区。