WordPress använder ett ganska nifty lösenordsstyrningsscript som används för att visa om lösenorden du angav i WordPress-administratören är: inte samma, mycket svaga, svaga, medelstora eller starka. För närvarande används det här skriptet endast när du skapar nya användare och när du ändrar ditt lösenord i din admin.
I den här artikeln kommer jag att lära dig hur du använder WordPress lösenordsmätare i dina egna former.
Strömmätarens manus är okodifierad vid tidpunkten för denna artikel, så att använda den kräver lite grävning i WordPress-kärnan. Det faktiska manuskriptet ligger i WordPress på wp-admin / js / lösenords-hållfasthets-meter.js
. Du kan kolla in det för att lära dig mer om hur scriptet fungerar.
Det första vi behöver göra är att inkludera det här skriptet genom att skriva in det i vår functions.php
:
wp_enqueue_script ('lösenordsstyrka-meter');
Skriptet ensam gör inte allt för oss. Det ger oss bara dessa två JavaScript-funktioner:
wp.passwordStrength.meter (lösenord1, svartlista, lösenord2).
Den här är den viktigaste funktionen som vi ska använda. Det analyserar två givna strängar, ger sedan styrkan i dessa två som ett tal från 1-5, 1 är de svagaste och 5 är de starkaste. Det tar också en rad svartlistade ord som kommer att beaktas under beräkningen som svaga ord.wp.passwordStrength.userInputBlacklist ().
Den här funktionen skapar en rad ord som ska betraktas som svaga ord i lösenord. Den här funktionen sammanställer strängar som finns i din webbplatss titel, tagline och URL. Det kontrollerar också för vissa inmatningsfält på den aktuella sidan och lägger sedan till dem i listan.Vi kan redan mäta styrkan i lösenord med bara dessa funktioner ovan. Det finns dock mer. Skriptet ger oss inte ett resultat som vi kan visa. Vi måste bygga en egen funktion för att göra detta.
Låt oss ta det här som utgångspunkt för att genomföra styrmätarens funktion:
Vi kommer att använda fältet namn
och ids
ovanifrån i den funktion som vi ska skapa.
Dessa är de mål som vi vill uppnå när vi är färdiga:
Låt mig först visa dig den färdiga jQuery-funktionen som vi ska använda. Jag förklarar varje del i detalj efteråt:
funktion checkPasswordStrength ($ pass1, $ pass2, $ strengthResult, $ submitButton, blacklistArray) var pass1 = $ pass1.val (); var pass2 = $ pass2.val (); // Återställ form & meter $ submitButton.attr ('inaktiverat', 'inaktiverat'); $ strengthResult.removeClass ('short bad good strong'); // Förlänga vår svartlista array med de från ingångarna och webbplatsen data blacklistArray = blacklistArray.concat (wp.passwordStrength.userInputBlacklist ()) // Hämta lösenordsstyrkan var styrka = wp.passwordStrength.meter (pass1, blacklistArray, pass2); // Lägg till styrdhetsmätarens resultatbrytare (styrka) case 2: $ strengthResult.addClass ('bad') .html (pwsL10n.bad); ha sönder; fall 3: $ strengthResult.addClass ('bra') .html (pwsL10n.good); ha sönder; fall 4: $ strengthResult.addClass ('strong') .html (pwsL10n.strong); ha sönder; fall 5: $ strengthResult.addClass ("short") .html (pwsL10n.mismatch); ha sönder; standard: $ strengthResult.addClass ('short') .html (pwsL10n.short); // Mätarfunktionen returnerar ett resultat även om pass2 är tomt, // aktivera endast inmatningsknappen om lösenordet är starkt och / / båda lösenorden fylls upp om (4 === styrka && "! == pass2.trim ()) $ submitButton.removeAttr ('disabled'); returstyrka; jQuery (dokument) .ready (funktion ($) // Bindning att utlösa checkPasswordStrength $ ('body') .on ('keyup' 'input [name = password1], inmatas [name = password2]', funktion (händelse) checkPasswordStrength ($ ('input [namn = lösenord]', // Första lösenordsfältet $ ('input [name = password_retyped]' ), // Andra lösenordsfältet $ ('# lösenordsstyrka'), // Styrmätare $ ('input [typ = submit]'), // Skicka knapp ['svart', 'listat', 'ord'] // svartlistade ord);););
Jag gjorde funktionen ta alla objekt som vi kommer att ändra eller behöva information från. Jag prefixerade alla jQuery-objekten med a $
för att göra det enklare att identifiera dem från de normala JavaScript-objekten.
var pass1 = $ pass1.val (); var pass2 = $ pass2.val (); // Återställ form & meter $ submitButton.attr ('inaktiverat', 'inaktiverat'); $ strengthResult.removeClass ('short bad good strong');
Dessa första linjer är enkla och enkla, vi får lösenorden, då återställer vi vår blankett. Vi gör att formuläret alltid är inaktiverat i början så att vi bara kan aktivera senare, efter att vi fått ett bra styrka.
Vi kommer även att lägga till stilar till vår styrmätare genom att ge det klassnamn beroende på poängen för lösenordet senare, för funktionens start kommer vi att rensa mätarens stil.
// Förläng vårt sortlister med de från ingångarna och sidodata blacklistArray = blacklistArray.concat (wp.passwordStrength.userInputBlacklist ());
Styrmätarens manus är svartlistade ord normalt borde vara okej. Men bara incase du vill lägga till mer, vår funktion kan acceptera ytterligare ord. Båda dessa sammanfogas här för att inmatas till meter
fungera.
meter
Fungera// Hämta lösenordsstyrkan var styrka = wp.passwordStrength.meter (pass1, blacklistArray, pass2);
Nu kallar vi meter
funktion för att få lösenordets styrpoäng. Nästa kommer vi att bestämma vad vi ska göra med resultatet.
// Lägg till styrdhetsmätarens resultatbrytare (styrka) case 2: $ strengthResult.addClass ('bad') .html (pwsL10n.bad); ha sönder; fall 3: $ strengthResult.addClass ('bra') .html (pwsL10n.good); ha sönder; fall 4: $ strengthResult.addClass ('strong') .html (pwsL10n.strong); ha sönder; fall 5: $ strengthResult.addClass ("short") .html (pwsL10n.mismatch); ha sönder; standard: $ strengthResult.addClass ('short') .html (pwsL10n.short);
Nu när vi har styrka, är det här den del där vi visar den. WordPress ger oss JavaScript-objektet pwsL10n
som håller etiketterna för varje styrpoäng. Vi visar etiketten inuti precis under lösenordsfälten, tilldelar vi också motsvarande stilklass till etiketten.
// Mätarfunktionen returnerar ett resultat även om pass2 är tomt, // aktivera endast inmatningsknappen om lösenordet är starkt och / / båda lösenorden fylls upp om (4 === styrka && "! == pass2.trim )) $ submitButton.removeAttr ('disabled');
Funktionens slut är att aktivera vår inlämningsknapp endast om vi har ett starkt lösenord.
jQuery (dokument) .ready (funktion ($) $ ('body') .on ('keyup', 'input [namn = lösenord1], mata in [name = password2]', funktion (händelse) checkPasswordStrength 'Inmatning [namn = lösenord]'), // Första lösenordsfältet $ ('input [name = password_retyped]') // Andra lösenordsfältet $ ('# lösenordsstyrka') // Strength meter $ [typ = lämna in]), // Skicka knapp ['svart', 'listat', 'ord'] // svartlistade ord);););
Slutligen behöver vi ett sätt att utlösa när du ska köra vår mätare för lösenordsstyrkemätare. Vi gör det genom att binda en handlare till keyUp
händelser till lösenordsfälten.
Var gjort!
Etiketterna för hållfasthetsmätaren laddas upp av WordPress under objektet pwsL10n
.
För att ändra och åsidosätta dessa etiketter måste du lokalisera manuset efter vår wp_enqueue_script
i functions.php
:
wp_localize_script ('password-strength-meter', 'pwsL10n', array ('empty' => __ ('Styrindikator'), 'short' => __ ('Mycket svag'), 'dåligt' => __ Svag ")," bra "=> _x ('Medium', 'Lösenstyrka'), 'strong' => __ ('Starkt'), 'mismatch' => __ ('Mismatch')));Du kan läsa mer om att överföra lokala strängar till JavaScript i artikeln: Så här skickar du PHP-data och strängar till JavaScript
I den här artikeln lärde vi oss hur du använder lösenordsstyrkeskriptet som ingår i WordPress. Detta kan användas i dina egna registreringsblanketter och front-end-profilsidor för dina webbplatsmedlemmar.
Jag hoppas att du haft den här artikeln. Jag uppskattar all feedback, kommentarer och förslag.
Låt mig veta om du har hittat ett coolt sätt att använda lösenordsstyrkemätaren. Dela dina tankar nedan!