Inicio de sesión automático desde el correo electrónico del cliente

8

Estaba considerando crear una función de inicio de sesión automático para una extensión en la que estoy trabajando, donde un cliente que hace clic en un enlace en un correo electrónico iniciará sesión automáticamente en su cuenta.

Esto sería realmente útil, especialmente cuando se envía a clientes mayores porque hay un gran cambio en el que tendrían que presionar la contraseña olvidada para iniciar sesión y realizar una compra.

Pero, por otro lado, abriría algunas vulnerabilidades que no me entusiasman demasiado. Si un cliente reenvía el correo electrónico a su amigo y su amigo hace clic en los enlaces, también se registrará como su amigo.

De acuerdo, podría tratar de educar a sus clientes para que no reenvíen esos correos electrónicos, pero eso podría ser una batalla cuesta arriba. La idea de que reenviar un correo electrónico de marketing a un amigo les permitiría iniciar sesión en su cuenta sin autorización no es algo a lo que las personas se acostumbren rápidamente.

Pensamientos?

ACTUALIZACIÓN: Acabo de notar que Quora hace un inicio de sesión automático de sus correos electrónicos de notificación de comentarios.

kalenjordan
fuente

Respuestas:

11
  1. Almacene la dirección IP y / o el agente de usuario utilizado la última vez que el cliente realizó un pedido o lo visitó y haga que el enlace solo funcione con esa dirección IP o agente de usuario.
  2. Haga que el enlace solo funcione una vez.
  3. Requiere una autenticación intermedia realmente sencilla como "Para confirmar que eres Jane Doe, ingresa tu código postal:"
ColinM
fuente
Estaba pensando un poco más sobre esto. Estaba pensando que si alguien tuviera un incentivo para desarrollar este tipo de características, probablemente sería Facebook o Twitter. Pero ellos no hacen esto, ¿verdad?
kalenjordan
4. Es muy probable que el cliente no haya cambiado su navegador: guarde un valor de cookie con el que se autentica además del enlace.
Kristof en Fooman el
1
Si el usuario tiene un teléfono y / o usa el sitio desde una biblioteca, existe una buena posibilidad de que el agente de usuario cambie. Lo mismo ocurre con la IP. La gente, de hecho, hace cosas en su escritorio y luego realiza un seguimiento en su dispositivo móvil. Agregue a esto la demora de los correos electrónicos de marketing ... y tiene una probabilidad aún mayor de que múltiples dispositivos o IP estén en juego.
davidalger
12

Creo que no recomendaría tal característica ...

Pero de todos modos, si desea construir esta característica, considere estos puntos:

  • use un inicio de sesión basado en token, como http: //shop.tld/? autologintoken = AABBCCDD

  • si es solo la primera vez que el cliente inicia sesión, limite el token de autenticación a un inicio de sesión

  • haga que el token sea único por cliente y también (muy importante) no se base en el nombre de usuario / contraseña / dirección / nombre / correo electrónico / lo que sea. Mage_Core_Helper_Data :: getRandomString puede ayudarlo. Una longitud de 32 debería ser lo mínimo que diría. ¡No uses algo como md5 (time ())!

  • cambiar el token cada vez que el cliente cambia su contraseña

  • restringir el acceso a la cuenta para los clientes que iniciaron sesión con el token, por ejemplo, permitirles ingresar su contraseña si desean cambiar a la dirección de correo o acceder a los números CC. Esto podría ayudar un poco a mejorar la seguridad.

  • no confíes (!!!) en el navegador, cookies, IP u otra cosa

thebod
fuente
1
Ojalá pudiera dar más que un simple +1 en este caso. :)
davidalger
1
En las versiones de Magento anteriores a 1.9, getRandomString es extremadamente débil debido a que mt_srand se siembra con solo 1 millón de valores posibles (sin importar la longitud de la cadena, todavía solo 1 millón de resultados posibles).
ColinM