creatvstudio/laravel-otp

一个处理基于时间的OTP的Laravel包

v0.0.1 2020-06-23 07:42 UTC

This package is auto-updated.

Last update: 2024-09-24 19:03:55 UTC


README

Latest Version on Packagist Total Downloads

此包仍处于alpha阶段。 一个用于实现基于时间的OTP的Laravel包。

安装

您可以通过composer安装此包

composer require creatvstudio/laravel-otp

发布包

php artisan vendor:publish --provider="CreatvStudio\Otp\OtpServiceProvider" 

运行迁移

php artisan migrate

将以下内容添加到config/app.php

aliases => [
    ... 	
    'Otp' => \CreatvStudio\Otp\Facades\Otp::class,
    ...
],

.env文件设置您的邮件设置

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

使用以下命令发布配置文件

php artisan vendor:publish --tag="otp-config"

用法

将特质添加到您的User类中

use CreatvStudio\Otp\HasOtp;

class User extends Authenticable {
    use Notifiable;
    use HasOtp;
}

// Generate an OTP
$otp = $user->getOtpCode();

// Verify an OTP
$user->verifyOtp($otp);

保护路由

将以下代码添加到app/Http/Kernel.php中的$routeMiddleware

protected $routeMiddleware = [
    ...
    'otp' => \CreatvStudio\Otp\Http\Middleware\CheckOtpSession::class,	
]

routes/web.php中使用

Otp::routes();

Route::middleware(['auth'])->group(function(){
    Route::get('otp-protected')->middleware('otp');	
});


注意:默认Laravel身份验证是使OTP路由正常工作的必要条件。

自定义发送OTP代码到邮件

要自定义发送OTP代码时电子邮件的内容,只需修改./app/Notifications/SendOtpNotification.php


注意:请参阅官方Laravel文档以了解有关自定义通知的更多信息。

测试

composer test

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

请参阅CONTRIBUTING以获取详细信息。

安全

如果您发现任何安全相关的问题,请通过电子邮件jeff@creatvstudio.ph联系,而不是使用问题跟踪器。

致谢

许可

MIT许可(MIT)。请参阅许可文件以获取更多信息。

Laravel Package Boilerplate

此包使用Laravel Package Boilerplate生成。