Cum să te autentifici automat în WordPress folosind un URL

3 ian. 2017, 07:35:12
Vizualizări: 14.4K
Voturi: 5

Vreau să mă autentific automat în WordPress prin transmiterea câmpurilor de utilizator și parolă ca parametri în URL-ul de autentificare.

De exemplu, vreau să creez un link ca următorul:

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

Teoretic, dacă introduc acel link în browser-ul meu,

vreau să fiu autentificat automat fără a fi nevoie să completez manual câmpurile din formular, dar acest lucru nu se întâmplă.

Există o metodă pentru a realiza acest lucru?

Scopul acestei funcționalități este de a folosi AJAX într-o aplicație web pentru autentificare.

1
Comentarii

Este în general o idee foarte proastă să trimiți parola printr-un parametru în șirul de interogare ($_GET). Când faceți acest lucru, parola va fi salvată în fișierele de jurnal ale serverului web, în istoricul browserului (deși nu cu AJAX) și poate fi trimisă în antetul referrer. În această situație, aș crea o valoare separată și secretă care poate fi folosită în acest scop.

Steen Schütt Steen Schütt
12 apr. 2022 17:01:12
Toate răspunsurile la întrebare 1
0

Utilizați codul de mai jos pe prima linie din functions.php al temei sau al unui anumit plugin.

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