Connexion automatique à partir de l'e-mail du client

8

J'envisageais de créer une fonction de connexion automatique pour une extension sur laquelle je travaille, où un client qui clique sur un lien dans un e-mail sera automatiquement connecté à son compte.

Cela serait vraiment utile, surtout lors de l'envoi à des clients plus âgés, car il y aurait un changement important dont ils auraient besoin pour frapper le mot de passe oublié afin de se connecter et de faire un achat.

Mais d'un autre côté, cela ouvrirait des vulnérabilités qui ne me passionnent pas trop. Si un client transmet l'e-mail à son ami et que son ami clique sur les liens, il sera également connecté en tant qu'ami.

Certes, vous pouvez essayer d'éduquer vos clients à ne pas transmettre ces e-mails, mais cela pourrait être une bataille difficile. L'idée que la transmission d'un e-mail marketing à un ami leur permettrait de se connecter à votre compte sans autorisation n'est pas une chose à laquelle les gens s'habitueront rapidement.

Pensées?

MISE À JOUR: Je viens de remarquer que Quora effectue une connexion automatique à partir de ses e-mails de notification de commentaires.

kalenjordan
la source

Réponses:

11
  1. Stockez l'adresse IP et / ou l'agent utilisateur utilisé lors de la dernière commande ou visite du client et faites en sorte que le lien ne fonctionne qu'avec cette adresse IP ou cet agent utilisateur.
  2. Faites en sorte que le lien ne fonctionne qu'une seule fois.
  3. Exiger une authentification intermédiaire très simple comme "Pour confirmer que vous êtes Jane Doe, veuillez entrer votre code postal:"
ColinM
la source
J'y réfléchissais un peu plus. Je pensais que si quelqu'un avait une incitation à créer ce type de fonctionnalité, ce serait probablement Facebook ou Twitter. Mais ils ne font pas ça, n'est-ce pas?
kalenjordan
4. Il y a de fortes chances que le client ne change pas de navigateur - enregistrez une valeur de cookie contre laquelle vous vous authentifiez en plus du lien.
Kristof à Fooman le
1
Si l'utilisateur possède un téléphone et / ou utilise le site à partir d'une bibliothèque, il y a de fortes chances que l'agent utilisateur change. Il en va de même pour l'IP. En fait, les gens font des choses sur leur bureau, puis effectuent un suivi sur leur appareil mobile. Ajoutez à cela le retard des e-mails marketing… et vous avez encore plus de chances que plusieurs appareils ou IP soient en jeu.
davidalger
12

Je pense que je ne recommanderais pas une telle fonctionnalité ...

Mais de toute façon, si vous souhaitez créer cette fonctionnalité, tenez compte de ces points:

  • utiliser une connexion basée sur des jetons, comme http: //shop.tld/? autologintoken = AABBCCDD

  • si c'est juste pour la première fois que le client se connecte, limitez le jeton d'authentification à une seule connexion

  • rendre le jeton unique par client, et aussi (très important) non basé sur le nom d'utilisateur / mot de passe / adresse / nom / email / quoi que ce soit. Mage_Core_Helper_Data :: getRandomString peut vous aider. Une longueur de 32 devrait être le minimum que je dirais. N'utilisez pas quelque chose comme md5 (time ())!

  • changer le jeton à chaque fois que le client change son mot de passe

  • restreindre l'accès au compte pour les clients qui se sont connectés à l'aide du jeton, par exemple, laissez-les entrer leur mot de passe s'ils souhaitent changer d'adresse e-mail ou accéder aux numéros CC. Cela pourrait aider un peu à améliorer la sécurité

  • ne vous fiez pas (!!!) au navigateur, aux cookies, à l'IP ou à autre chose

thebod
la source
1
J'aimerais pouvoir donner plus qu'un simple +1 sur celui-ci. :)
davidalger
1
Sur les versions de Magento antérieures à 1.9, getRandomString est extrêmement faible car mt_srand est ensemencé avec seulement 1 million de valeurs possibles (quelle que soit la longueur de la chaîne, toujours seulement 1 million de résultats possibles).
ColinM