PHP code example of shrikant / otp

1. Go to this page and download the library: Download shrikant/otp 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/ */

    

shrikant / otp example snippets


use Shrikant\OTP\OTP;
use Shrikant\OTP\Storage\OTPStoreInterface;

class SessionStore implements OTPStoreInterface {
    public function set(string $key, string $otp, int $ttl): void {
        $_SESSION[$key] = ['otp' => $otp, 'expires' => time() + $ttl];
    }

    public function get(string $key): ?string {
        return ($_SESSION[$key]['expires'] ?? 0) > time()
            ? $_SESSION[$key]['otp']
            : null;
    }

    public function delete(string $key): void {
        unset($_SESSION[$key]);
    }
}

session_start();
$otpService = new OTP(new SessionStore());

$otp = $otpService->generate('user:email', 6, 300); // Generate 6-digit OTP valid for 5 minutes

// Later...
if ($otpService->validate('user:email', $_POST['otp'])) {
    echo "Valid!";
} else {
    echo "Invalid!";
}

interface OTPStoreInterface {
    public function set(string $key, string $otp, int $ttl): void;
    public function get(string $key): ?string;
    public function delete(string $key): void;
}

otp/
├── src/
│   ├── OTP.php
│   └── Storage/
│       └── OTPStoreInterface.php
├── tests/
│   └── OTPTest.php
├── composer.json
├── README.md
├── .gitignore
└── phpunit.xml