1. Go to this page and download the library: Download codewiser/otp-authenticate library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
codewiser / otp-authenticate example snippets
composer isan otp:install
namespace App\Providers;
use Codewiser\Otp\OtpService;
use Codewiser\Otp\RateLimiter\OtpLimit;
use Codewiser\Otp\RateLimiter\Throttle;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\ServiceProvider;
class OtpServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
$this->app->singleton(OtpService::class,
fn($app) => new OtpService('P1W')
);
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
RateLimiter::for(Throttle::issue, fn(Request $request) => [
OtpLimit::perMinute(1)->for(Throttle::issue)->by('minute:'.$request->user()->id),
OtpLimit::perDay(15)->for(Throttle::issue)->by('day:'.$request->user()->id),
]);
RateLimiter::for(Throttle::verify, fn(Request $request) => [
OtpLimit::perDay(30)->for(Throttle::verify)->by($request->user()->id)
]);
}
}
use Codewiser\Otp\Contracts\MustVerifyEmailWithOtp;
use Codewiser\Otp\Traits\MustVerifyEmailWithOtp as HasOtp;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable implements MustVerifyEmailWithOtp {
use HasOtp;
//
}
use Codewiser\Otp\Middleware\EnsureOtpIsPassed;
use Illuminate\Support\Facades\Route;
Route::middleware(['auth', EnsureOtpIsPassed::class])->group(function () {
//
});
use Codewiser\Otp\OtpService;
use Codewiser\Otp\Notifications\EmailWithOtp;
use Illuminate\Support\ServiceProvider;
class OtpServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*/
public function boot(): void
{
OtpService::view(fn() => view('auth.custom-view'));
OtpService::newCodeUsing(fn() => rand(1000, 9999));
EmailWithOtp::toMailUsing(function(object $notifiable, string $otp) {
//
});
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.