Foros del Web » Programando para Internet » PHP »

Acceso Monousuario

Estas en el tema de Acceso Monousuario en el foro de PHP en Foros del Web. He estado buscando bastante y aun no he encontrado lo que necesito, lo que necesito es, crear un sistema de autenticación para usuarios, en el ...
  #1 (permalink)  
Antiguo 25/01/2012, 10:21
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 22 años, 10 meses
Puntos: 20
Acceso Monousuario

He estado buscando bastante y aun no he encontrado lo que necesito, lo que necesito es, crear un sistema de autenticación para usuarios, en el que con un solo nombre de usuario solo pueda entrar una persona a la vez, es decir si tengo el usuario user1, y una vez este logeado, nadie mas pueda entrar con este mismo nombre de usuario desde ningun lado, o sea necesito que sea algo monousuario.

Alguna idea de como hacerlo?
__________________
Say no more.......
  #2 (permalink)  
Antiguo 25/01/2012, 10:32
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Acceso Monousuario

la única forma de hacer eso es registrando en un archivo único o en un registro único de la base de datos el ID de sesión logueado, y cuando se intente de nuevo procede a bloquear.

consecuencias: si no se cierra sesión debidamente permanece el registro y es imposible entrar hasta que no se elimine, es una arma de doble filo
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 25/01/2012, 10:46
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 22 años, 10 meses
Puntos: 20
Respuesta: Acceso Monousuario

Cita:
Iniciado por maycolalvarez Ver Mensaje
la única forma de hacer eso es registrando en un archivo único o en un registro único de la base de datos el ID de sesión logueado, y cuando se intente de nuevo procede a bloquear.

consecuencias: si no se cierra sesión debidamente permanece el registro y es imposible entrar hasta que no se elimine, es una arma de doble filo
Si asi lo habia pensado y de hecho se me ocurrio agregar algun método para que apenas se cierre la ventana del navegador se cierre la sesión, pero hasta ahora no he encontrado la forma de lograrlo
__________________
Say no more.......
  #4 (permalink)  
Antiguo 25/01/2012, 10:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Acceso Monousuario

El problema es que no hay una forma real para hacer que el browser, mande el logoff, lo que muchos sitios hacen si detectan que no hiciste el logoff es dejar bloqueado tu usuario y usando un cron job que cheque el tiempo de acceso desbloquean al usuario.
  #5 (permalink)  
Antiguo 25/01/2012, 10:57
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 22 años, 10 meses
Puntos: 20
Respuesta: Acceso Monousuario

Cita:
Iniciado por GatorV Ver Mensaje
El problema es que no hay una forma real para hacer que el browser, mande el logoff, lo que muchos sitios hacen si detectan que no hiciste el logoff es dejar bloqueado tu usuario y usando un cron job que cheque el tiempo de acceso desbloquean al usuario.
No habia considerado esta opcion, pero ahora que lo mencionas voy a intentarlo a ver como me va y comento
__________________
Say no more.......
  #6 (permalink)  
Antiguo 25/01/2012, 21:22
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Respuesta: Acceso Monousuario

Hola, para evitar el uso del cronjob que por un lado es relativo (si se ejecuta cada 15 minutos y pasaron 14 desde la última vez que se ejecutó cuando el usuario entró, al minuto lo va a sacar), y por otro lado muchos servidores no te permiten configurarlo en intervalos muy chicos, una opción es loguear toda la actividad del usuario.

Cada vez que un script de tu sistema verifica el login, guarda en una tabla, por ejemplo, "actividad" el id del usuario y la fecha (asimismo podés ir sumando datos como control o estadística).

Luego cuando un usuario intenta ingresar verifica primero que no haya ninguna sesión abierta (como estaban hablando antes) y si hay una sesión abierta todavía, busca el último registro de actividad y si es menor al tiempo que le permitís de inactividad al usuario, no lo deja ingresar.

Pasado ese límite sin ningún registro nuevo en actividad, lo dejaría entrar como asumiendo que ya no hay nadie logueado (también en ese momento podés marcar a todos los usuarios como deslogueados para asegurarte de que se les cierre la sesión).

Saludos.

Etiquetas: usuarios
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 08:02.