Cerrar sesión de otro navegador al abrir una nueva

Iniciado por hechicerd0, 3 Julio 2017, 16:05 PM

0 Miembros y 1 Visitante están viendo este tema.

hechicerd0

Supongamos que entro en un juego online con mi cuenta desde un ordenador A.

Ahora entro desde el ordenador B.

Cómo habría que programar que A recibiera "algo" que le dijera que ya no está disponible desde ahi sino desde B.

Necesito algún tipo de guia para luego programarlo, no se me ocurren ideas

engel lex

usualmente eso lo debe hacer es el servidor de juego, pero para tu opción, tendrías que comunicarte de una pc a la otra de una u otra forma...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MinusFour

Simplemente invalidas la sesión del ordenador A. El cuando y el como dependerá de que tecnología estés usando tanto del lado de cliente como del servidor.

hechicerd0

Entiendo, entonces quiero informar de que usaría PHP con xampp en codeIgniter.

Alguna sugerencia?

MinusFour

Cita de: hechicerd0 en  3 Julio 2017, 21:06 PM
Entiendo, entonces quiero informar de que usaría PHP con xampp en codeIgniter.

Alguna sugerencia?

En la base de datos guarda la ID de la sesión cuando se conecte la persona a la cuenta. Si se conecta alguien mas, recojes la ID pasada, borras la sesión, le creas una nueva sesión al nuevo dispositivo y listo.

ivancea96

Cuando se conecte alguien con una cuenta, miras en *una lista de cuentas conectadas* si ya está conectado. De ser así, la sesión que estaba conectada la cierras, y abres la nueva. Es un ejemplo, depende de cómo lo hagas exactamente. En cualquier caso, siempre deberías tener un enlace "sesión -> cuenta", así que no habría problema. Otra opción, en caso de que, sabiendo la cuenta, no uedas "acceder" a la sesión,, sería guardar en la informacion de la cuenta conectada, una ID de la sesión, así, la proxima vez que la sesion antigua trate de conectarse, verá que no es la misma ID, y se cerrará.

Es muy abstracto, así que dpeende :D

hechicerd0

Vale, basandome en vuestras sugerncias se me ocurre lo siguiente:

Tengo guardado en base de datos en todo momento todos los usuarios que están en linea.

Cada vez que un usario se conecte, comprobaría si está en linea, si es asi, mira su tokken, si el tokken que tiene es el mismo que el de la session (es que no ha relogueado, esta en el mismo pc), si el tokken que tiene es diferente (porque al ahcer login se generaria un tokken), entonces cambia el tokken del usario en linea por otro.

En el otro ordenador entonces, cada vez que se actualice la página, comprueba que el tokken que tiene la sesion es el mismo que hay en la base de datos, si no lo es, entonces ejecuta el logut.

El problema que veo es que ha de ir a la base de datos a comprobar el tokken cada minuto digamos, si tenemos muchos usuarios, eso son muchos selects, que no creo que influya mucho pero habría alguna otra manera?


engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

hechicerd0

El juego es mio, esta al 90% pero estoy reprogramandolo y corrigiendo cosas desde hace meses.

www.xfantasyonline.es <-- es la versión antiuga y PARADA, yo estoy en local haciendo mil cambios, pero claro, lo hago todo absolutamente yo y solo y tampoco soy un pro, tengo 23 años, llevo 2 desarrollandolo y demás.

Acepto ayudas jaja pero quiero aprender antes de todo y mostrar algo que esta 100% hecho por mi.


engel lex

ahh si es tuyo hubieras aclarado -.- estamos asumiendo que es que tu abres un juego en 2 pc diferentes y quieres una infraestructura aislada a este...

en lugar de manejar las sesiones por variable de sesion solamente, las validas a mano, esto para hacerlo simple puedes hacerlo en una tabla de sql, donde tengas

usuario|cookie|huella

donde usuario es indice unico, lo que haces es si no exíste el usuario, se crea, si exíste se reemplaza, así solo puede haber una instancia del usuario por vez, porque al navegador viejo entrar, ya su cookie no es la valida
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.