Aller au contenu
Accueil moxon

OTP

L'endpoint /otp génère et vérifie des mots de passe à usage unique (TOTP/HOTP), compatibles avec Google Authenticator et Aegis.

posthttps://api.moxon.dev/v6/otp
Essayerpost/v6/otp

Paramètres

Le corps de la requête doit être en JSON :

  • action"secret" | "generate" | "verify"requis

    Action à effectuer : secret, generate ou verify

  • secretstringconditionnel

    Clé secrète base32 (requise pour generate et verify)

  • codestringconditionnel

    Code OTP à vérifier (requis pour verify)

  • labelstringoptionnel

    Libellé du compte pour l'URI otpauth:// (utilisé avec l'action secret)

  • issuerstringoptionnel

    Nom de l'émetteur pour l'URI otpauth:// (utilisé avec l'action secret)

  • algorithm"sha1" | "sha256" | "sha512"optionnel

    Algorithme HMAC : sha1 (défaut), sha256 ou sha512

  • digits"6" | "8"optionnel

    Longueur du code : 6 (défaut) ou 8

  • period"15" | "30" | "60"optionnel

    Période TOTP en secondes : 15, 30 (défaut) ou 60

  • counternumberoptionnel

    Compteur HOTP (entier). Si fourni, le mode HOTP est utilisé à la place du TOTP

Actions disponibles

ActionDescription
secretGénère un nouveau secret base32 aléatoire et retourne un URI otpauth:// prêt à être scanné en QR code
generateGénère le code OTP courant. Sans counter : mode TOTP (basé sur le temps). Avec counter : mode HOTP (déterministe)
verifyVé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)

Conformité RFC

Implémente la RFC 4226 (HOTP) et la RFC 6238 (TOTP). Compatible avec Google Authenticator et Aegis.

Exemples de code

Champs de réponse

Action secret :

  • secretstring

    Clé secrète encodée en base32

  • uristring

    URI otpauth:// pour la génération de QR code

Action generate :

  • codestring

    Code OTP généré

  • typestring

    totp ou hotp

Action verify :

  • validboolean

    Indique si le code est valide

  • driftnumber

    Décalage temporel détecté (0, +1 ou -1)

Gestion des erreurs

Si les paramètres sont manquants ou invalides, l'API retournera une erreur :

  • 400Action is requiredLe paramètre action est manquant
  • 400Action must be one of: secret, generate, verifyLa valeur de action n'est pas valide
  • 400Secret is requiredLe paramètre secret est manquant
  • 400Code is requiredLe paramètre code est manquant pour verify
  • 400Digits must be 6 or 8La valeur de digits n'est pas valide
  • 400Period must be one of: 15, 30, 60La valeur de period n'est pas valide
  • 400Algorithm must be one of: sha1, sha256, sha512L'algorithm n'est pas supporté
  • 400Counter must be a non-negative integerLa valeur de counter est invalide