Guardar un solo registro en auth_user despues de autenticar con varios metodos que tenga como dato común el email

21 views
Skip to first unread message

Mauricio Gallo Ocampo

unread,
May 5, 2013, 6:04:50 PM5/5/13
to web2py-...@googlegroups.com
Cordial saludo, 

En el frameword hay forma de que un usuario se autentique en la aplicación con varios métodos (Facebook, gmail, manual)  y garantizar que el usuario solo tenga un registro en la tabla auth_user.   La idea es que al proporcionar datos validos de cualquier método siempre estemos hablando del mismo usuario.  Siempre y cuando tenga como atributo común el email. 

Lo que veo que hace es que crea un registro en dicha tabla por cada método de autenticación. 

Agradezco si alguien tiene idea sobre esto. 


Alan Etkin

unread,
May 5, 2013, 7:12:18 PM5/5/13
to web2py-...@googlegroups.com
En el frameword hay forma de que un usuario se autentique en la aplicación con varios métodos (Facebook, gmail, manual)  y garantizar que el usuario solo tenga un registro en la tabla auth_user.

Si usás los métodos alternativos que vienen con el framework, creo que los registros de usuario se almacenan igualmente en la bdd, pero algunos sólo registran un campo registration_id. El problema es si un mismo usuario se registra con desde distintos servicios puede ocurrir que el método no lo detecte y que cree dos cuentas. De todas formas, hay una herramienta que te permite hacer un mapeo de los datos recuperados de los servicios de autenticación de terceros (como janrain.com). La herramienta está documentada en esta sección del manual

http://www.web2py.com/books/default/chapter/29/09#Integration-with-OpenID,-Facebook,-etc.
 

Marco Mansilla

unread,
May 5, 2013, 10:25:13 PM5/5/13
to web2py-...@googlegroups.com
El Sun, 5 May 2013 15:04:50 -0700 (PDT)
Mauricio Gallo Ocampo <magal...@gmail.com> escribió:
Si estoy equivocado, por favor diganme, pero IS_EMAIL() y unique=True
en Email no deberia ser util para lo que se quiere en este caso?,
usando janrain desde luego... o IS_NOT_IN_DB(db, db.auth_user.email)...?

Saludos.
Reply all
Reply to author
Forward
0 new messages