shrikant/otp
最新稳定版本:1.0.0
Composer 安装命令:
composer require shrikant/otp
包简介
A framework-agnostic OTP generator and validator
README 文档
README
Directory Tree
otp/
├── src/
│ ├── OTP.php
│ └── Storage/
│ └── OTPStoreInterface.php
├── tests/
│ └── OTPTest.php
├── composer.json
├── README.md
├── .gitignore
└── phpunit.xml
📘 README.md
# OTP **Framework-Agnostic One Time Password (OTP) Generator and Validator for PHP** --- ## 🚀 Features - ✅ Generate numeric OTPs (default 6 digits) - ✅ Validate OTPs - ✅ TTL (expiration time) support - ✅ Framework-agnostic (works with Laravel, Symfony, Slim, etc.) - ✅ Pluggable storage (memory, session, database) --- ## 📦 Installation ```bash composer require shrikant/otp
🛠️ Usage
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!"; }
✅ Testing
composer install ./vendor/bin/phpunit
🔌 Extending
Implement OTPStoreInterface to use Redis, Database, Cache, etc.
interface OTPStoreInterface { public function set(string $key, string $otp, int $ttl): void; public function get(string $key): ?string; public function delete(string $key): void; }
📄 License
MIT License. Do what you want.
❤️ Contributing
Pull requests and issues are welcome!!!
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-08