Forzar la desconexión de usuarios en sitios WordPress

Es fantástico que WordPress sea multiusuario pero ¿y si alguno se vuelve loco y quiere joderte la web?

Hay multitud de situaciones en las que puede que necesites forzar la desconexión de usuarios, y en cualquier caso, especialmente en entornos corporativos, sitios de comercio electrónico y, por qué no decirlo, para prevenir ataques y hackeos, puede no ser mala idea forzar la desconexión tras un determinado periodo de tiempo.

Por defecto, WordPress no desconectará a un usuario hasta que no expire la cookie de sesión, que dura lo siguiente:

  • 48 horas
  • Cuando cierras el navegador completamente
  • 14 días si haces clic en la casilla de “Recuérdame”

Así que si quieres forzar la desconexión de los usuarios al cabo de un tiempo tendrás que tomar medidas.

Forzar la desconexión de usuarios con código

Un modo de “echar” a todos los usuarios, digamos, cada 4 horas, sería con un código como el siguiente, que deberás añadir a tu plugin de funciones o al archivo functions.php del tema activo:

function user_update_login($login) {

    // la función se activa cuando un usuario se conecta

    global $user_ID;

    $user = get_userdatabylogin($login);

    // guarda la hora a la que se conecta el usuario

    update_usermeta( $user->ID, 'last_login', time() );

}

add_action('wp_login','user_update_login');

function check_time_limit() {

    get_currentuserinfo();

    global $user_ID;

    // solo se ejecuta si el usuario aún está conectado

    if($user_ID) {

        // revisa la hora de la conexión

        $last_login = get_user_meta($user_ID, 'last_login', TRUE);

        // si se conectó hace más de 14400 segundos (4 horas) se desconecta al usuario

        if(time() > ($last_login + 14400)) {

            wp_logout();

        }

    }

}

check_time_limit();

Otro modo de forzar la desconexión es con este otro código, más sencillo pero igual de efectivo:

Forzar la desconexión de usuarios con plugin

Te aviso de antemano que los plugins que he encontrado para hacer lo mismo están bastante abandonados en su desarrollo, pero en mis pruebas aún funcionan. Si es tu opción puedes elegir alguno de estos para forzar la desconexión de los usuarios.

  • Idle Logout: Te permite especificar el tiempo de expiración e incluso un mensaje a los usuarios.
  • Configure Login Timeout: Puedes cambiar la expiración por defecto de WordPress, con clic en “Recuérdame” o no.

Un truco adicional que casi se me olvida es quitar la casilla “Recuérdame” de la pantalla de acceso de WordPress, con lo que fuerzas a que la cookie dure un máximo de 48 horas. Si te gusta puede ser una opción.

Si sabes algún modo más nos lo cuentas en los comentarios ¿vale?

Vía | AyudaWP

, ,
Entrada anterior
Cómo escribir para Google
Entrada siguiente
Como acelerar el tiempo de carga en WordPress con WooCommerce

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rellena este campo
Rellena este campo
Por favor, introduce una dirección de correo electrónico válida.
Necesita estar de acuerdo con los términos para continuar

Menú