sql >> Base de Datos >  >> RDS >> Mysql

Cerrar sesión de un usuario inactivo usando PHP

El -4200 es solo para destruir la cookie. Las cookies se destruyen estableciendo un tiempo en el pasado para ellas. Por lo tanto, configurar 4200 segundos hacia atrás es tan efectivo como 1 segundo hacia atrás.

Para cerrar la sesión de los usuarios, existen varios métodos. Puedes tener una cookie propia configurada con el último tiempo activo (establecer el tiempo cada vez que el usuario visita una página). Al comienzo de cada script, incluya una función que obtenga esta cookie y verifique el valor que debe contener el último tiempo activo. Si este tiempo es anterior al tiempo de inactividad permitido, entonces destruya esta cookie y también su sesión, si no, actualice el valor a la hora actual.

Por supuesto, también puede almacenar dentro de la sesión la última vez que estuvo activa, lo cual es una forma mucho más eficiente de eliminar la sobrecarga de transferencia y administración de cookies.

EDITAR

A continuación se muestra un código mínimo para verificar el último tiempo activo y cerrar la sesión del usuario:

function login(){
    //check login username/pass etc...
    $_SESSION['last_active_time'] = time();
}

function auth(){
   if($_SESSION['last_active_time'] < (time() - 1800)){ //1800 is 30 minutes (time in seconds)
        logout(); //destroy the session in the logout function
    }
    else{
        $_SESSION['last_active_time'] = time();
    }
   //do some auth related things
}

Esa es la lógica básica detrás de esto. Por supuesto, necesitaría implementar otras cosas que necesita junto con seguridad, verificación, etc...