Complemento para evitar compartir nombre de usuario en WordPress

3 minutos de lectura

¿Hay alguna manera de anular el uso compartido del nombre de usuario (basado en la dirección IP o iniciar sesión al mismo tiempo en una ubicación diferente) para WordPress? Si hay un complemento solo para rastrear la dirección IP y el tiempo de inicio de sesión, también debería estar bien. Gracias

  • ¿Quieres que solo una IP pueda usar un nombre de usuario? Si es así, vas a bloquear a cualquier usuario con una IP dinámica. ¿O está intentando bloquear los inicios de sesión simultáneos del mismo usuario?

    – Billy ONeal

    10 de abril de 2010 a las 1:36

  • Estoy tratando de bloquear el inicio de sesión simultáneo.

    – CV.

    11 de abril de 2010 a las 22:24

puede agregar esto a su functions.php o un archivo de complemento.

    //set the most current user to have a cookie matching a unique value    
add_action("set_logged_in_cookie", "one_cookie", 10, 5);
function one_cookie($logged_in_cookie, $expire, $expiration, $user_id, $logged_in) {
    $secure = apply_filters('secure_logged_in_cookie', false, $user_id, is_ssl());
    $cookie = uniqid();
    update_user_meta($user_id, "one_cookie", $cookie);
    setcookie("one_cookie", $cookie, $expire, COOKIEPATH, COOKIE_DOMAIN, $secure, true);
    return;
}
//check requests from users to ensure they have this cookie
add_action("init", "check_one_cookie", 1);
function check_one_cookie() {
    $user = wp_get_current_user();
    if ($user->ID == 0) { return; }
    $storedcookie = get_user_meta($user->ID, 'one_cookie');
    print_r(array('$storedcookie'=>$storedcookie));
  if (!empty($storedcookie) && $_COOKIE['one_cookie'] != $storedcookie) {
    /*if the user doesn't have the same cookie as we have stored, log them out.*/
        wp_logout();
        //auth_redirect() may have a more desired effect
    }
}
//unset a users cookie
add_action('wp-logout', 'one_cookie_logout');
function one_cookie_logout() {
    setcookie("one_cookie", "", 1);
}

Sin embargo, esto funcionará en una sola dirección. Cada vez que se procesa un nuevo inicio de sesión, se bloqueará el anterior. Si desea revertir eso, probablemente necesitará escribir mucho más código para que un usuario pueda romper un bloqueo, etc.

También puede lograr esto reemplazando las funciones apropiadas en ‘wp-includes/pluggable.php’

He probado el código anterior para que funcione con WordPress 3.1.

  • tenga en cuenta que esto rechazará al usuario sin importar qué IP tenga usuario por usuario. Si desea permitir que el mismo usuario inicie sesión pero desde diferentes IP (probablemente no sea la mejor manera), simplemente agregue un metacampo de usuario para su IP o codifíquelo en la cookie y luego verifique las solicitudes contra eso.

    – variable nula

    12 de abril de 2011 a las 18:24

Probado en 3.6.1 y funciona bien, excepto que la función “check_one_cookie” debe actualizarse así:

add_action("init", "check_one_cookie", 1);
    function check_one_cookie() {
    $user = wp_get_current_user();
    if ($user->ID == 0) { return; }
    $storedcookie = get_user_meta($user->ID, 'one_cookie');
    // print_r(array('$storedcookie'=>$storedcookie));
    if (!empty($storedcookie) && $_COOKIE['one_cookie'] != $storedcookie[0]) {
    /*if the user doesn't have the same cookie as we have stored, log them out.*/
        wp_logout();
        //auth_redirect() may have a more desired effect
    }
}

$cookie almacenada debe ser remplazado por $cookie almacenada[0]

(y no olvides reemplazar el COOKIEPATH, COOKIE_DOMAIN por tus propios datos)

  • salvavidas me estaba volviendo loco con esto jaja

    – cppi

    11 de enero de 2014 a las 9:04

No he usado esto, pero el Complemento de WordPress registrador de IP parece prometedor. Tiene muchas funciones de registro y administración.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad