Tratar con múltiples sistemas de inicio de sesión (Facebook Connect, Cuenta de Google y otros)

votos
3

Si desea permitir que los usuarios de su sitio puedan iniciar sesión con Facebook Connect, cuenta de Google, etc., ¿cómo diseña su base de datos para que todos estén integrados?

Publicado el 24/06/2009 a las 00:46
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
2

Sugiero usar una tabla de Cuentas para mantener los datos de su cuenta local que luego se relacionarían con una tabla de Métodos de autenticación o una tabla de Credenciales donde se mantendrían los detalles de autenticación externa relacionados. Esto permite que su sitio y toda su complejidad se relacionen con las Cuentas y su proceso de inicio de sesión para abstraer muy bien las diversas formas de autenticación que podría querer admitir. Dado que cada método de autenticación puede tener diferentes niveles de complejidad, sugiero observar las diversas API y hacer una referencia cruzada para encontrar similitudes comunes. Lo más importante es que quiera ubicar dónde son diferentes para que la tabla de credenciales pueda manejar los diversos bits de datos que cada API podría requerir. ¡No olvide incluir OpenID!

Respondida el 24/06/2009 a las 01:16
fuente por usuario

votos
0

Utilizo dos campos en mi cuenta local o tabla de usuario. Uno se llama "externalSystemId" (TINYINT) y el otro es "externalId" (DOUBLE). Tengo algunas constantes de código que definen los diversos valores de ExternalSystemId, es decir. EXTERNAL_SYSTEM_FACEBOOK = 1, EXTERNAL_SYSTEM_OPENID = 2, etc. El externalId es, por supuesto, la identificación del usuario de ese sistema.

Al manejar un objeto Usuario en mi código, puedo determinar fácilmente de qué sistema es un usuario y cargar los mecanismos de código adecuados para autenticar o mostrar algo que sea apropiado para el sistema, basado en el ExternalSystemId.

Tenga en cuenta que es posible que desee utilizar una tabla de base de datos para almacenar registros de sistemas externos, en lugar de constantes de código, dependiendo de cuántos va a tratar y si necesita un montón de información adicional sobre el sistema.

Respondida el 24/06/2009 a las 01:31
fuente por usuario

votos
0

¿Estás seguro de que deseas almacenar otras informaciones que "iniciar sesión": "contraseña"? Le recomendaría que tenga una enumeración para guardar de qué sistema de inicio de sesión proviene el usuario.

Respondida el 12/08/2009 a las 14:25
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more