¿Cómo puedo iniciar sesión automáticamente usando una URL?

3 ene 2017, 07:35:12
Vistas: 14.4K
Votos: 5

Quiero iniciar sesión automáticamente en WordPress pasando el nombre de usuario y contraseña como parámetros en la URL de login.

Por ejemplo, quiero crear un enlace como este:

www.misitio.com/wp-admin?usuario=xxxx&contraseña=xxxxx

En teoría, si pego ese enlace en mi navegador web,

quiero iniciar sesión automáticamente sin tener que introducir datos en los campos del formulario, pero esto no ocurre.

¿Hay alguna forma de hacer esto?

El propósito es usar AJAX en una aplicación web para el inicio de sesión.

1
Comentarios

Generalmente es una muy mala idea enviar la contraseña a través de un parámetro en la cadena de consulta ($_GET). Cuando haces esto, la contraseña se guardará en los archivos de registro del servidor web, en el historial del navegador (aunque no con AJAX) y existe el riesgo de que se envíe en la cabecera del referente. En esta situación, yo crearía un valor secreto separado que pueda usarse para este propósito.

Steen Schütt Steen Schütt
12 abr 2022 17:01:12
Todas las respuestas a la pregunta 1
0

Usa el siguiente código en la primera línea del archivo functions.php de tu tema o en un plugin específico.

<?php
if( isset($_GET['username']) and $_GET['pass'] ) {
    $user = get_user_by('login', $_GET['username']);

    if ( $user && wp_check_password( $_GET['pass'], $user->data->user_pass, $user->ID) ) {
        wp_set_current_user($user->ID, $user->user_login);
        wp_set_auth_cookie($user->ID);
        do_action('wp_login', $user->ID, $user->user_login);

        wp_redirect( admin_url() );
        exit;
    }

    wp_redirect( home_url() );
    exit;
}
?>
3 ene 2017 08:03:46