Aller au contenu

$totp.getCode

Description

Retourne le token (habituellement à 6 chiffres) correspondant au secret passé en paramètre et valable au timestamp indiqué (date/heure actuelle par défaut).

Syntaxe

$totp.getCode( secretKey [ , options ] )

Paramètres

secretKey string
Clé secrète TOTP au format base32
options string

Paramètres de configuration du générateur. Les options reconnues sont données ci-après.

timestamp string
Timestamp pour lequel le code droit être généré.
timeStep number
Période de validité d'un token en secondes. Par défaut la durée est de 30 secondes.
length number
Taille des tokens à traiter. La taille par défaut est de 6 chiffres. La taille doit être comprise entre 6 et 8 chiffres.
asNumber boolean

Flag true/false indiquant à la méhode de générer le token sous forme d'entier.

L'option est false par défaut. Dans ce cas, le token est généré sous forme de chaîne de caractères. La méthode se charge d'ajouter des 0 en préfixe si nécessaire pour que le token ait la bonne longueur.

algo string

Fonction cryptographique utilisée pour gérer la clé secrète. Les valeurs possibles sont "HmacSHA1", "HmacSHA256" et "HmacSHA512".

La valeur par défaut est "HmacSHA1".

Retour

Code à 6 chiffres sous forme de string.

Exemple

L'exemple ci-dessous génère une clé TOTP puis génère des codes à 6 chiffres. En particulier, l'exemple démontre que le code généré pour le timestamp "+ 30 secondes" correspond au code généré après une pause de 30 secondes.

1
2
3
4
5
6
7
var key = $totp.genKey();
$logger.info("key: " & key);
$logger.info("Code: " & $totp.getCode(key));
$logger.info("Next code: " & $totp.getCode(key, { timestamp: $cal.add($cal.timestamp(), 30, "sec") }));
$logger.info("waiting 30 sec...");
$script.sleep(30 * 1000);
$logger.info("Current code: " & $totp.getCode(key));

Exemple de traces générées par le code ci-dessus:

key: NNMLUFGYU6AS5X6CNBM34KSG74G2PFUG
Code: 120705
Next code: 490799
waiting 30 sec...
Current code: 490799