mazama / otp
Envoi et vérifie des codes OTP par WhatsApp via le service mazama-otp.
v1.0.0
2026-10-30 13:17 UTC
Requires
- php: ^8.2
- illuminate/http: ^11.0|^12.0|^13.0
- illuminate/support: ^11.0|^12.0|^13.0
Requires (Dev)
- phpunit/phpunit: ^11.0|^12.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Envoie et vérifie des codes OTP par WhatsApp avec le service mazama-otp (Laravel 11, 12 ou 13).
Installation
composer require mazama/otp
Tant que le paquet n'est pas sur Packagist, ajoute d'abord dans ton composer.json :
"repositories": [{"type": "vcs", "url": "https://github.com/TON-COMPTE/mazama-otp"}]
Configuration
Dans ton .env, avec les valeurs données par l'administrateur :
MAZENDA_URL=https://otp.akakporoland.it/api/v1
MAZENDA_TOKEN=mzm_xxxxxxxxxxxxxxxx
Utilisation
use Mazama\Otp\Otp; use Mazama\Otp\Exceptions\OtpException; // 1. L'utilisateur saisit son numéro Otp::send($request->phone); // ['phone' => '228••••••00', 'expires_in' => 300] // 2. L'utilisateur tape le code reçu sur WhatsApp if (Otp::verify($request->phone, $request->code)) { // code bon (valable 5 min, 5 essais, usage unique) : connecte l'utilisateur }
Erreurs
Toutes étendent OtpException.
| Exception | Cause |
|---|---|
InvalidTokenException |
token invalide, révoqué, ou .env incomplet |
InvalidPhoneException |
numéro invalide |
TooManyRequestsException |
trop de demandes pour ce numéro (->retryAfter en secondes) |
SendFailedException |
service injoignable ou envoi impossible |
try { Otp::send($phone); } catch (TooManyRequestsException $e) { // "Réessaie dans {$e->retryAfter} secondes" } catch (OtpException $e) { // autre erreur }
Tests
composer install && vendor/bin/phpunit