Automatisk inloggning för WordPress Admin i PHP

Dagens inlägg kommer bara att bli en kort post där jag ska visa dig hur du installerar en snygg liten funktion på din WordPress-webbplats. Om det används på ett säkert sätt kan det vara mycket bekvämt. Detta är utformat för att användas på WordPress-webbplatser som erbjuder ett generiskt konto för användare att logga in på. På många backend WordPress-demo skapar till exempel författaren ett “demo” -konto för potentiella kunder att logga in och spela med sin produkt. Oftare än inte kommer författaren helt enkelt att visa ett meddelande som säger;


ANVÄNDARNAMN: demo
LÖSENORD: demo

Det här är lite fotgängare. Visst kan vi få demo att se lite mer strömlinjeformad och professionell ut? Jag ger dig ett snabbt utdrag för att automatiskt logga in på WordPress-administratören med dessa referenser. Detta kan antingen släppas i ditt temas funktionsfil eller läggas i sin egen plugin-fil och aktiveras.

Detta kan vara användbart om;

  • Din webbplats har ett generiskt konto för anonyma användare att logga in på.
  • Du vill ha en inloggningslänk med ett klick.
  • Du vill maximera produktdemokonvertering genom att tillhandahålla en snabb och effektiv väg till demon, minimera nödvändiga steg.
  • Du vill rikta besökare direkt till relevant plats (t.ex. inställningssidan).

VIKTIG: Använd aldrig detta för att logga in på konton med verklig kraft; t.ex. Administratör / redaktörskonton osv.
Använd det här utdraget noggrant.

Okej, så som jag har gjort i mina andra tutorials, kommer jag att ge dig den kompletta, annoterade koden först så att de av er som inte är fans av att läsa kan komma direkt att experimentera med den. Följande kodstycke har utformats i form av ett fristående plugin (min personliga preferens).

Harri Bell-Thomas på Github

/ *
Plugin-namn: automatisk inloggning
Plugin URI: http://hbt.io/
Version: 1.0.0
Författare: Harri Bell-Thomas
Författare URI: http://hbt.io/
* /

funktion autologin () {
// PARAMETER ATT KONTROLLERA FÖR
if ($ _GET ['autologin'] == 'demo') {

// KONTO ANVÄNDARNA TILL LOGGA IN TILL
$ creds ['user_login'] = 'demo';

// KONTO LÖSENORD FÖR ANVÄNDNING
$ creds ['user_password'] = 'demo';

$ creds ['remember'] = true;
$ autologin_user = wp_signon ($ poäng, falsk);

if (! is_wp_error ($ autologin_user))
header ('Plats: wp-admin'); // PLATS FÖR ATT omdirigera till
}
}
// LÄGG TILL KODE BARA FÖR HEADERS OCH COOKIES SÄNDAS
add_action ('after_setup_theme', 'autologin');

ANVÄNDANDE

Detta är väldigt enkelt att använda. Kontonets användarnamn och lösenord anges i plugin-filen (koden ovan), och för att logga in behöver du helt enkelt besöka; http://example.com/wp-login.php?autologin=demo

Du bör omedelbart omdirigeras till wp-admin, inloggad på det angivna kontot. Om referensuppgifterna är fel, bör du bara se inloggningsformuläret som normalt.

CUSTOMIZE

Det här utdraget är mycket enkelt att anpassa. Det finns i huvudsak bara tre saker du behöver redigera, och alla dessa ändringar ska göras i följande kodblock (rad 11 till 17 i den fullständiga koden)

if ($ _GET ['login'] == 'dummy_account') {

// KONTO ANVÄNDARNA TILL LOGGA IN TILL
$ creds ['user_login'] = 'dummy';

// KONTO LÖSENORD FÖR ANVÄNDNING
$ creds ['user_password'] = 'pa55word';

På den första raden ser du villkorlig kontroll av URL-parametern. Ovanstående kodblock kommer att söka efter; wp-login.php? inloggning = dummy_account

Dessa värden kan vara vad du vill, men var noga med att undvika ursprungliga WordPress-parametrar som ‘utloggad’, ‘åtgärd’ och ‘omdirigera_ till’. Rad 4 är där du anger användarnamn att logga in med; det anpassade kodavsnittet försöker logga in på “dummy” -kontot. Som du antagligen kan gissa är rad 7 där du anger lösenordet. Ovanstående lösenord är ‘pa55word’. Fyll i dessa värden så borde du vara bra att gå!

EXTENSIONS

Just nu är vårt kodavsnitt bara inställt för automatisk inloggning till ett konto. Vad händer om vi vill ha olika inloggningslänkar för olika konton? Det här är ganska snabbt och enkelt att göra och kräver inte att du upprepar hela utdraget om och om igen. Titta nedan på min lösning.

/ *
Plugin-namn: automatisk inloggning
Plugin URI: http://hbt.io/
Beskrivning: Skapa bekväma automatisk inloggningslänkar för att snabbt logga in på generiska konton. Konfigurera källkoden för att göra ändringar.
Version: 1.0.0
Författare: Harri Bell-Thomas
Författare URI: http://hbt.io/
* /

// Förklara globala var
global $ login_parameter, $ konton;

// PARAMETER ATT KONTROLLERA FÖR
// t.ex. http://exmaple.com/wp-login.php?param_name=account
$ login_parameter = "autologin";

// KONTOKODSBLOCK
$ konton [] = array (
"user" => "demo",
"pass" => "demo",
"location" => "wp-admin",
);
// SLUT AV KONTOKODE

// REDIGERA OCH REPEAT CODE BLOCK FÖR SOM MÅNGA KONTOER SOM BEHOVS

// Ett annat exempel på iteration
$ konton [] = array (
"user" => "tcwp",
"pass" => "demo",
"location" => "wp-admin /? tcwp-sent-me",
);


// SE TIDIGARE EXEMPEL FÖR DETALJER OM DENNA FUNKTION
funktion autologin () {
global $ login_parameter, $ konton;
foreach ($ konton som $ konto) {
if ($ _GET [$ login_parameter] == $ konto ['user']) {
$ creds ['user_login'] = $ -konto ['user'];
$ creds ['user_password'] = $ -konto ['pass'];
$ creds ['remember'] = true;
$ autologin_user = wp_signon ($ poäng, falsk);
if (! is_wp_error ($ autologin_user))
header ('Plats:'. $ -konto ['plats']);
}
}
}
add_action ('after_setup_theme', 'autologin');

I kärnan är detta väsentligen detsamma, men med en fräck förhandsslinga plus konton som också kastas in. Anologin för autologin () -funktionen är identisk, med undantag för att dess kod upprepas (med förhandslingan) för varje konto. Alla relevanta detaljer lagras nu i den globala matrisen. Exemplet ovan är konfigurerat för två konton, men vårt utdrag kan rymma så många som vi behöver. För att lägga till ytterligare konton, anpassa och lägg till så många av följande kodblock du behöver.

// KONTOKODSBLOCK
$ konton [] = array (
"user" => "en annan konto",
"pass" => "public_password",
"location" => "http://YouCanPutURLsHereToo.com/",
);
// SLUT AV KONTOKODE

Du kommer också att märka att jag också har flyttat parameternamnet till en global variabel: detta är inte nödvändigt, men jag gjorde det helt enkelt för att ta bort alla hårkodade värden från autologin () -funktionen.

SLUTSATS

Detta utdrag är bara en enkel funktion som är utformad för lätt användning, till exempel på en produktdemosida, men har potentialen att användas för mycket mer komplexa inloggningsscenarier. Resten av koden borde vara ganska självförklarande, men om du har några frågor om vad jag har gjort, eller varför jag har gjort det, lämna bara en kommentar nedan eller twitta mig. Om du har feedback / förslag / idéer lämnar du en kommentar i kommentaravsnittet nedan!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map