0
votes

Confirmation par e-mail dans le nœud JS

Je vais écrire le code de confirmation par courrier électronique dans le nœud JS. Approche suivante, j'adopte

  • génère un nombre aléatoire à 5 chiffres
  • Enregistrer les données utilisateur (email, mot de passe, etc.) avec un nombre aléatoire à 5 chiffres dans la base de données (MongoDB)
  • Envoyer un numéro aléatoire sur l'adresse e-mail.
  • Appliquer Settimeout () Methon pour attendre 20 minutes pour confirmer l'adresse mail
  • Après 20 minutes si l'utilisateur vérifie les addres, il est fin, sinon supprimez les données utilisateur de la base de données.

    Mais ce code continue d'attendre 20 minutes jusqu'à la fin de la période de sécurité. Y a-t-il un moyen d'appliquer cette stratégie sans attendre 20 minutes? Je sais que c'est simple mais je ne suis pas capable de le casser. Voici le code ... xxx


2 commentaires

Cela vous aiderait si vous avez donné plus de détails sur la manière dont vous envoyez l'email (NODEMAILER? SES?) ...


@Gilsondoijunior Oui Nodemailer et j'ai mis à jour la question.


3 Réponses :


1
votes

Enregistrez le temps d'expiration du code de confirmation avec celui-ci dans la base de données. Ensuite, lorsque vous vérifiez le code, vérifiez également qu'il n'a pas expiré.


1 commentaires

Il devrait y avoir deux points d'extrémité distincts: un pour générer le numéro de vérification et enregistrer le code et l'heure de la génération dans la base de données (comme @Brad a déclaré), tandis qu'un autre noeud final est responsable de la vérification si le numéro envoyé par l'utilisateur est correct et non expiré



1
votes

Nous pouvons utiliser des index TTL dans MongoDB pour faire ce travail, supposons qu'il existe un isverified qui est par défaut false et est défini sur true Lorsque l'utilisateur vérifie l'e-mail

afin que nous puissions ajouter un index TTL comme xxx

ici créateat est la date du temps lorsque l'utilisateur est enregistré.

Index TTL supprimera automatiquement le document après l'heure d'expiration si isverified (code> est toujours faux

pour référence https://docs.mongodb.com/manual/core / index-ttl /


0 commentaires

0
votes

Vous pouvez également essayer cette approche

à l'aide du package NPM (deux étages-auth)

Utilisez ce package dans votre index serveur.js et créez un itinéraire pour cela et passer directement dans les variables et vous pouvez faire le reste,

dans votre application, obtenez les données du formulaire et transmettez-la sur votre serveur, puis sur le package et il vous retournera un OTP fonctionne avec,

Veuillez vérifier les procédures complètes avec l'exemple Ici

Utilisation xxx

sortie

 Entrez la description de l'image ici Cela vous donnera un OTP à travailler avec et vous pouvez l'enregistrer sur votre serveur et vous pouvez l'utiliser pour l'avenir futur, comme faire une demande de message à votre serveur à partir de la façade lorsque les types d'utilisateurs dans l'OTP


0 commentaires