Foros del Web » Programando para Internet » PHP »

Misma sesión de usuario en varios sitios (tipo NetPassport)

Estas en el tema de Misma sesión de usuario en varios sitios (tipo NetPassport) en el foro de PHP en Foros del Web. Buenas!, estoy escribiendo esto para escuchar la voz de los profesionales que visitan a diario esta comunidad de ayuda. Tengo un sitio con registro de ...
  #1 (permalink)  
Antiguo 12/08/2006, 09:56
Avatar de reyesoft  
Fecha de Ingreso: abril-2006
Ubicación: San Rafael, Mendoza
Mensajes: 311
Antigüedad: 11 años, 8 meses
Puntos: 15
Mensaje Misma sesión de usuario en varios sitios (tipo NetPassport)

Buenas!, estoy escribiendo esto para escuchar la voz de los profesionales que visitan a diario esta comunidad de ayuda.

Tengo un sitio con registro de usuarios, login y todo lo que tenga que ver con la administración de usuarios. Cada usuario puede abrir y cerrar su sesión.

Ahora, quiero abrir dos sitios más, pero quisiera que los usuarios se mantengan, pero que también se mantenga la sesión. O sea, si un usuario inicia sesión en el sitio1 que su sesión siga abierta en el sitio2. Lo ideal sería que todos los sitios pudieran leer la misma cookie, pero eso no creo que se pueda hacer.

Surgen ideas de que todos los sitios lean una tabla con los usuarios y contraseña, y cada uno se encargue de crear la cookie, pero realmente no me gusta estar gastanto tanto tiempo de mysql.

Tal vez exista alguna otra opción.

Espero su sabia respuesta...
  #2 (permalink)  
Antiguo 12/08/2006, 12:14
Avatar de jdelozar  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid
Mensajes: 32
Antigüedad: 11 años, 4 meses
Puntos: 0
Cita:
Iniciado por reyesoft Ver Mensaje
Surgen ideas de que todos los sitios lean una tabla con los usuarios y contraseña, y cada uno se encargue de crear la cookie, pero realmente no me gusta estar gastanto tanto tiempo de mysql.
Es la única opción, pero lo optimizas de modo que sólo cuando se salte de un sitio a otro se compruebe si no tiene sesión y si no la tiene la crea almacenando en ella los datos de la sesión del otro sitio, de modo que la consulta SQL sólo la haces una vez.
El único problema es identificar la sesión que tienes que cargar, pero si asumes que esto solo ocurra cuando pasas de uno a otro a través de enlaces en ellos mismos, sólo tienes que pasar un identificador de la sesión.
Otro problema que surgiría es que estando en un sitio cambien valores de la sesión y que el otro se entere, pero esto también se puede solventar añadiendo un parámetro en el salto que especifique que ha cambios en los datos de la sesión. Esto requeriría mucha disciplina en el control de los datos de sesión.

Un saludo:
Juan R.
__________________
Un saludo:
Juan
  #3 (permalink)  
Antiguo 12/08/2006, 13:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 11 años, 6 meses
Puntos: 2122
Lo que puedes hacer es como dices un sitio como "passport" e implementar un servicio via sockets tipo XML para poder "autentificar" a un usuario, lamentablemente si vas a nescesitar un metodo de almacenamiento persistente en el servidor (sea una base de datos, o un archivo plano de texto, etc.).

Ya con esto podrias solamente llamar al servicio via sockets para saber si un usuario esta o no autentificado (como lo hace actualmente el passport).

Espero te sirva!, saludos!.
  #4 (permalink)  
Antiguo 12/08/2006, 14:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Podrías tener un servidor LDAP para centralizar los usuarios y sistemas de autentificaciòn. El problema serìa la "sesiòn" multidominio.

El sistema de sesiones de PHP nativo no soporta "multidominos" .. sòlo son válidas para el domino que las crea y por cliente.

Si quieres un sistema màs avanzado de control de sesiones (incluido opción multidomino) puedes usar:

Adodb
http://phplens.com/lens/adodb/docs-session.htm

Las sesiones las gestiona sobre una BBDD, sòlo necesitarías bajo este concepto una BBDD con acceso remoto permitido para la implementación del sistema de sesiones.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:49.