jefte/otpgenerator

Laravel插件,用于生成OTP令牌

0.0.2 2021-09-15 04:39 UTC

This package is auto-updated.

Last update: 2024-09-16 04:11:54 UTC


README

要求

  • Laravel v6.0或更高版本
  • Composer

安装

通过Composer运行

composer require jefte/otpgenerator

发布OTP令牌迁移

php artisan vendor:publish --provider=Jefte\OTPGenerator\OTPServiceProvider --tag=otp-migration

然后运行php artisan migrate

用法

HasOTPToken特质包含到您的模型中

<?php
 
namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Jefte\OTPGenerator\Traits\HasOTPToken;

class User extends Authenticatable
{
  use HasFactory, Notifiable, HasOTPToken;
  
  
}

要生成OTP令牌,请使用模型中的createOtpToken方法

class HomeController extends Controller
{
   public function requestOtpToken(Request $request)
   {
      $user = $request->user();
      
      // Creating Token
      $token = $user->createOtpToken();
      
      
      // Accessing the created token
      $token->getGeneratedToken();
      
      // Sample Use Case
      $user->notify(new SendOtpNotification($token));
      
      
   }
   
   public function verifyOtpToken(Request $request)
   {
      
      $user = $request->user();
      
      // To Verify Token
      $token = $request->input('otp_token');
      
      if(! $user->verifyToken($myToken))
      {
          return response()->json([
              'message' => 'Invalid OTP'
          ], 422);
      }
      
   }
    
}

自定义

发布配置

php artisan vendor:publish --provider=Jefte\OTPGenerator\OTPServiceProvider --tag=otp-config

在您的.env文件中

# Default Characters generated OTP Token

OTP_CHARACTERS=123456789


# Default Length

OTP_LENGTH=6


# Token default TTL
# 3600 secs = 1Hour
# Use seconds as unit

OTP_TTL=3600