OTP
L'endpoint /otp génère et vérifie des mots de passe à usage unique (TOTP/HOTP), compatibles avec Google Authenticator et Aegis.
curl -X POST \ "https://api.moxon.dev/v5/otp" \ -H "Content-Type: application/json" \ -d '{}'Envoyez la requête pour voir la réponse ici.
Le corps de la requête doit être en JSON :
action"secret" | "generate" | "verify"requisAction à effectuer :
secret,generateouverifysecretstringconditionnelClé secrète base32 (requise pour
generateetverify)codestringconditionnelCode OTP à vérifier (requis pour
verify)labelstringoptionnelLibellé du compte pour l'URI
otpauth://(utilisé avec l'actionsecret)issuerstringoptionnelNom de l'émetteur pour l'URI
otpauth://(utilisé avec l'actionsecret)algorithm"sha1" | "sha256" | "sha512"optionnelAlgorithme HMAC :
sha1(défaut),sha256ousha512digits"6" | "8"optionnelLongueur du code :
6(défaut) ou8period"15" | "30" | "60"optionnelPériode TOTP en secondes :
15,30(défaut) ou60counternumberoptionnelCompteur HOTP (entier). Si fourni, le mode HOTP est utilisé à la place du TOTP
| Action | Description |
|---|---|
secret | Génère un nouveau secret base32 aléatoire et retourne un URI otpauth:// prêt à être scanné en QR code |
generate | Génère le code OTP courant. Sans counter : mode TOTP (basé sur le temps). Avec counter : mode HOTP (déterministe) |
verify | Vérifie un code avec une fenêtre de tolérance de ±1 période. Retourne valid et un décalage drift (0, +1 ou -1) |
Implémente la RFC 4226 (HOTP) et la RFC 6238 (TOTP). Compatible avec Google Authenticator et Aegis.
Action secret :
secretstringClé secrète encodée en base32
uristringURI
otpauth://pour la génération de QR code
Action generate :
codestringCode OTP généré
typestringtotpouhotp
Action verify :
validbooleanIndique si le code est valide
driftnumberDécalage temporel détecté (0, +1 ou -1)
Si les paramètres sont manquants ou invalides, l'API retournera une erreur :
- 400
Action is requiredLe paramètreactionest manquant - 400
Action must be one of: secret, generate, verifyLa valeur deactionn'est pas valide - 400
Secret is requiredLe paramètresecretest manquant - 400
Code is requiredLe paramètrecodeest manquant pourverify - 400
Digits must be 6 or 8La valeur dedigitsn'est pas valide - 400
Period must be one of: 15, 30, 60La valeur deperiodn'est pas valide - 400
Algorithm must be one of: sha1, sha256, sha512L'algorithmn'est pas supporté - 400
Counter must be a non-negative integerLa valeur decounterest invalide
Mis à jour le 27 mai 2026