AuthentificationFacteurs

Nœuds : OTP SMS / Email

Envoi et vérification de codes à usage unique par SMS ou email, dans le cadre d’un graphe d’authentification.

Graphe d'exemple dans l'éditeur : connexion sans mot de passe par code SMS Graphe d'exemple dans l'éditeur : connexion sans mot de passe par code SMS
Exemple : connexion sans mot de passe. Le code est envoyé par SMS (1) puis vérifié (2) ; un code expiré est renvoyé automatiquement.

SmsOtpSendNode : génère un OTP numérique et l’envoie par SMS.

Faites défiler le tableau
PropriétéTypeDéfaut
otpLengthint6
ttlSecondsint300
phoneAttributestringtelephoneNumber
phoneSharedStateKeystringphoneNumber
smsBodyTemplatestringYour verification code is: {otp} (valid for {ttl}s)

Outcomes : sent / error.

Le numéro est lu d’abord dans l’état partagé (clé phoneSharedStateKey, alimentée par PhoneCollectorNode), sinon dans l’attribut phoneAttribute du profil. Il doit être au format E.164 (+33…). L’envoi passe par AWS SNS : voir le tutoriel Double authentification par SMS pour la configuration et un faux SNS de test.

SmsOtpVerifyNode : vérifie l’OTP soumis contre celui envoyé par SmsOtpSendNode.

Faites défiler le tableau
PropriétéTypeDéfaut
maxAttemptsint5

Outcomes : true / false / expired / exceeded.

Faites défiler le tableau
SortieQuandCâblage habituel
truele code est justesuite de la connexion
falsele code est faux, il reste des essaisretour sur SmsOtpVerifyNode, qui redemande le code
exceededle code est faux et c’était le dernier essai (maxAttempts)échec
expiredla durée de validité (ttlSeconds) est dépasséeSmsOtpSendNode, qui envoie un nouveau code, ou échec

Le nœud ne redemande pas le code de lui-même : c’est le retour de false sur le nœud qui donne un nouvel essai. Sans exceeded câblée, le dernier essai termine la connexion par un échec. La sortie exceeded existe depuis la version 3.38.

EmailOtpSendNode : équivalent e-mail de SmsOtpSendNode.

Faites défiler le tableau
PropriétéTypeDéfaut
otpLengthint6
ttlSecondsint300
emailAttributestringmail
emailSharedStateKeystringemail
emailSubjectstringYour verification code
emailBodyTemplatestringgabarit avec {otp}/{ttl}

Outcomes : sent / error.

EmailOtpVerifyNode : équivalent e-mail de SmsOtpVerifyNode.

Faites défiler le tableau
PropriétéTypeDéfaut
maxAttemptsint5

Outcomes : true / false / expired / exceeded, avec le même sens que pour SmsOtpVerifyNode.

Mis à jour le