Come posso effettuare il login automatico usando un URL?

3 gen 2017, 07:35:12
Visualizzazioni: 14.4K
Voti: 5

Voglio effettuare il login automatico in WordPress inserendo username e password come parametri nell'URL di accesso.

Ad esempio, vorrei creare un link come questo:

www.miosito.com/wp-admin?username=xxxx&pass=xxxxx

Teoricamente, se incollo questo link nel browser,

vorrei essere automaticamente loggato senza dover inserire i dati manualmente nel form, ma questo non accade.

Esiste un modo per farlo?

Lo scopo è utilizzare AJAX in un'app web per effettuare il login.

1
Commenti

È generalmente una pessima idea inviare la password attraverso un parametro nella stringa di query ($_GET). Quando fai questo, la password verrà salvata nei file di log del server web, nella cronologia del browser (anche se non con AJAX) e rischia di essere inviata nell'intestazione del referrer. In questa situazione creerei un valore separato e segreto che possa essere utilizzato per questo scopo.

Steen Schütt Steen Schütt
12 apr 2022 17:01:12
Tutte le risposte alla domanda 1
0

Utilizza il codice sottostante nella prima riga del file functions.php del tuo tema o di un plugin specifico.

<?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 gen 2017 08:03:46