Enviar mail de confirmacion de registro con un link que cambie el estado de la cuenta de usuario a estado activo.

745 views
Skip to first unread message

Xavier Monfort

unread,
Apr 10, 2012, 5:07:28 AM4/10/12
to symfo...@googlegroups.com
Hola
Trabajo con Symfony2. En la base de datos tengo en la tabla de usuariosRegistrados, una columna llamada "estado" para guardar si el usuario esta activo o inactivo.
La idea es mandar el típico email de confirmación de registro y que el usuario haga click en un enlace para pasarlo como usuario activo en la base de datos.

El como mandar el email tendré que indagar pero mas o menos ya me atrevo, el lio es que no se como generar el link que cambie su estado en la base de datos.

Entiendo que tengo que generar un numero aleatorio (token) que se guarda en la base de datos en la tabla de usuarios registrados. Enviar el link pasando como parámetro el token generado. La página comprueba que el parámetro recibido corresponde al guardado en la base de datos. Si es correcto, es decir si el token es igual al almacenado, pasar el usuario a usuario activo en la base de datos, y borrar el token de la base de datos. El campo token de la base de datos que habra quedado vacio o null,  puede utilizarse para en caso de que el usuario olvide su contraseña generar un nuevo token y almacenarlo para poder reautentificar que realmente es el usuario el que ha solicitado un cambio de contraseña.

Que pensais, lo veis bien ?

Hay alguna otra manera de detectar que has recibido un email de un usuario en concreto y con ello pasarlo a activo ?

Xavier Monfort.



Alguna sugerencia para generar el link de activación ?

Manu González

unread,
Apr 10, 2012, 6:20:57 AM4/10/12
to symfo...@googlegroups.com
Hola,
los chicos de FOS tiene un bundle muy interesante (FOSUserBundle) que viene con esa opción. La mecánica es muy simple, puedes echar un vistazo aquí.

Saludos,

Jesús Ruiz García

unread,
Apr 10, 2012, 6:47:12 AM4/10/12
to symfo...@googlegroups.com
Hola Xavier:

Todo lo que comentas es lo que tienes que hacer, la verdad es que te has hecho una idea muy apróximada de la realidad ;)

De todas formas, mi respuesta creo que te va a servir de poco. Yo vengo de CodeIgniter y ahí un videotutorial donde se explica esto que tu necesitas creando unos métodos muy sencillitos. Te paso el enlace para que veas como consiguen realizar todo el proceso, pero luego tu tendrás que hacer lo mismo con código Symfony.
El enlace es el siguiente:
http://www.tutorialesvirtuales.com/videotutoriales/videotutoriales-codeigniter

Elige el episodio: taskstart_9 que me parece que es donde comienza la explicación.

También comentarte que en el video al final sobra mucho tiempo de visualización, porque el autor intenta usar una librería para enviar emails que al final no consigue configurarla bien. Aunque el código para realizar esto, ya totalmente bien configurado, está en la propia página web. De todas formas, esto a ti ni te va ni te viene, sólo presta atención al método de la creación de la validación.

Un saludo y espero que te sirva de algo mi pequeño aporte.

--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Google Groups.
Para publicar en este grupo, envía un email a symfo...@googlegroups.com
Para darte de baja, envía un email a symfony-es+...@googlegroups.com
El resto de opciones puedes encontrarlas en http://groups.google.com/group/symfony-es?hl=es

helysm

unread,
Apr 10, 2012, 7:07:18 AM4/10/12
to symfo...@googlegroups.com

No hay otra manera, el envio del email lo haces usando swift mail que esta dentro de symfony, la generacion del link es muy facil lo que haces es creas la ruta luego la accion que lo procese junto con su template de salida y luego generas el token que lo usas para crear el link de la misma manera que haces para crear link con parametros entre paginas en el template.

El abr 10, 2012 4:07 a.m., "Xavier Monfort" <xmo...@yahoo.es> escribió:

Hola
Trabajo con Symfony2. En la base de datos tengo en la tabla de usuariosRegistrados, una columna llamada "estado" para guardar si el usuario esta activo o inactivo.


La idea es mandar el típico email de confirmación de registro y que el usuario haga click en un enl...

El como mandar el email tendré que indagar pero mas o menos ya me atrevo, el lio es que no se como generar el link que cambie su estado en la base de datos.


Entiendo que tengo que generar un numero aleatorio (token) que se guarda en la base de datos en la ...

Hay alguna otra manera de detectar que has recibido un email de un usuario en concreto y con ello pasarlo a activo ?

Xavier Monfort.





Alguna sugerencia para generar el link de activación ?

--

Reply all
Reply to author
Forward
0 new messages