Meilleur moyen pour les liens de confirmation par courrier électronique de soumettre un identifiant

StackOverflow https://stackoverflow.com/questions/212758

  •  03-07-2019
  •  | 
  •  

Question

J'ai un site Web qui envoie un e-mail de confirmation à quelqu'un.

Maintenant, dans le courrier électronique, j'aimerais que l'utilisateur clique sur un lien pour confirmer qu'il a bien reçu le courrier.

J'aimerais inclure le mot de passe de l'utilisateur (ou un code aléatoire) dans l'adresse de confirmation, afin que l'utilisateur n'ait pas besoin de le saisir à nouveau à la main, mais si je le fais, le mot de passe se retrouvera dans le navigateur. l'historique et les fichiers journaux.

Existe-t-il un autre moyen d'obtenir un lien de confirmation dans un courrier électronique pour envoyer des informations telles qu'un nom d'utilisateur et un mot de passe, sans que cela se termine dans le lien?
Est-il possible, par exemple, d’avoir un formulaire de saisie dans un email et d’envoyer le mot de passe en tant que POST au lieu de GET?

Était-ce utile?

La solution

Cela fonctionne généralement comme suit: le courrier électronique de confirmation contient un lien incluant un GUID (identificateur global unique). Le GUID est associé au compte de l'utilisateur. Lorsque le lien est cliqué, l'application Web définit simplement l'indicateur de confirmation et connecte l'utilisateur à l'aide du GUID plutôt que de la combinaison habituelle nom d'utilisateur et mot de passe.

Autres conseils

Calculez un condensé hexadécimal (par exemple, md5) en fonction de l'id de l'utilisateur et de l'heure actuelle. Conservez ce code dans une base de données ou écrivez un fichier avec son nom de fichier et incluez l'ID et l'adresse électronique de l'utilisateur.

Configurez un gestionnaire http (cgi, php, servlet, etc.) pour recevoir les demandes GET basées sur un URI ressemblant à "& confirm_email / {hexdigest}". ou "/confirm_email.php? code = {hexdigest}"

Lorsqu'un utilisateur doit confirmer son courrier électronique, envoyez un lien au servlet ci-dessus contenant le résumé.

Lorsque quelqu'un se connecte à cet URI, récupérez l'enregistrement ou le fichier de base de données avec le résumé correspondant. S'il en trouve un, l'adresse e-mail contenue est maintenant vérifiée.

Si vous voulez le rendre plus robuste: lorsqu'un utilisateur vérifie son courrier électronique, changez le résumé hexadécimal pour qu'il ne soit qu'un hachage de l'adresse électronique elle-même, sans sel. Vous pouvez ensuite tester si le courrier électronique de quelqu'un a changé et doit être revérifié.

Vous pouvez passer le GUID dans l'e-mail. Ce GUID particulier doit être associé à l'utilisateur. Ensuite, lorsque l'utilisateur clique sur le lien, le GUID est renvoyé à l'application et peut être capturé en tant que QueryString. Extrayez le GUID d'une mise à jour que l'utilisateur a approuvée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top