Säker, lösenordsfri autentisering med Auth0

I den här artikeln lär du dig hur du konfigurerar lösenordslös autentisering med Auth0-tjänsten. Auth0 tillåter dig att lägga ut autentiseringsfunktioner för din app.

Vad är Auth0?

Auth0 är ett verifieringsverktyg som gör att implementering av autentiseringsrelaterade funktioner för din app eller webbplats är en bris. Om du har byggt en app och du bara vill lägga ut autentiserings- och behörighetsfunktionerna, är en tjänst som Auth0 något du bör tänka på.

Låt mig snabbt sammanfatta vad Auth0 har att erbjuda:

  • enda inloggning
  • multifaktorautentisering
  • lösenordslösa inloggningar
  • Användarhantering
  • och mycket mera!

Första installationen

I det här avsnittet går vi igenom den ursprungliga inställningen för att förbereda dig för att konfigurera lösenordsfri autentisering.

Innan du går vidare, se till att installera Kompositör som den används för att installera aktuella Auth0 SDKs med composer.json fil. Om du också vill följa med exemplen i den här artikeln, fortsätt och skaffa dig ett gratis konto med Auth0.

Låt oss börja med att ta tag i en klon i provprojektet.

git klon https://github.com/auth0-samples/auth0-php-web-app.git .

Installera beroenden

Fortsätt springa kompositör installera kommandot för att installera beroenden.

cd 00-Starter-Seed-komponentinstallation

Enligt composer.json fil, du borde ha installerat vlucas / phpdotenv och auth0 / auth0-php paket.

"namn": "auth0 / basic-webapp-sample", "description": "Grundläggande prov för att säkra en WebApp med Auth0", "kräver": "vlucas / phpdotenv": "2.4.0", "auth0 / auth0-php ":" 5.0 "," licens ":" MIT "," författare ": [" namn ":" Martin Gontovnikas "," email ":" [email protected] ", ":" Germán Lena "," email ":" [email protected] "] 

De vlucas / phpdotenv bibliotek används för att initiera miljövariabler från .env fil. Således kan du skilja konfigurationen från koden som ändras mellan miljöer.

Å andra sidan, auth0 / auth0-php paketet är det som hjälper oss att ställa in behörighet i vår app.

Konfigurera miljövariablerna

Låt oss sedan konfigurera konfigurationen för vår app i .env fil. Gå vidare och skapa .env fil genom att kopiera den från .env.example fil.

cp.env.example .env

Den innehåller konfigurationsvärden som kommer att användas av Auth0-biblioteket.

AUTH0_CLIENT_ID = CLIENT_ID AUTH0_DOMAIN = DOMAIN_NAME AUTH0_CLIENT_SECRET = CLIENT_SECRET AUTH0_CALLBACK_URL = CALLBACK_URL AUTH0_AUDIENCE =

Du borde kunna hitta de flesta inställningarna under Program> Standardapp> Inställningar på Auth0-instrumentbrädan. Observera att jag använder standardprogrammet som skapats av systemet. Självklart kan du gå vidare och skapa en ny applikation om du vill göra det.

De AUTH0_CALLBACK_URL är webbadressen till din app där Auth0 kommer att omdirigera användare efter inloggning och loggning. Värdet som du anger i det här fältet måste konfigureras under Tillåten återkopplingsadresser i programinställningarna på Auth0-instrumentpanelen.

Lösloslös inloggning med e-post

För att aktivera lösenordslös inloggning med e-post, gå till Anslutningar> Löslös på Auth0-instrumentpanelen och aktivera E-post alternativ.

I de flesta fall är standardinställningarna under E-post bara träna ur lådan. Självklart, om du vill ändra några inställningar, fortsätt och gör det. Glöm inte att aktivera de appar som du vill ha lösenordsfri autentisering på Anslutningar> Löslös> E-post> Program.

Med den ursprungliga inställningen på plats kan vi fortsätta och skapa en fil som implementerar lösenordslös inloggning med e-post.

Genomför Lösloslös inloggning

Gå vidare och skapa email_auth_example.php fil med följande innehåll.

 $ domain_id' => $ client_id, 'client_secret' => $ client_secret, 'redirect_uri' => $ redirect_uri, 'audience' => $ målgrupp, 'scope' => 'openid profil', 'persist_id_token' => sant, 'persist_access_token' => true, 'persist_refresh_token' => true,]); $ userInfo = $ auth0-> getUser (); ?>           
Lösloslös inloggning med e-post

Välkommen

Logga ut

I början har vi inkluderat automatisk lastare som ansvarar för att ladda Auth0- och miljövariabeliknande klasser.

Därefter initierar vi konfigurationsvariabler från .env fil med hjälp av getenv fungera.

Därefter har vi ringt getUser metod i Auth0-objektet för att kontrollera om någon aktiv session är närvarande. Baserat på det visar vi Logga in länka om det inte finns någon aktiv session. I annat fall användarnamnet för den inloggade användaren med Logga ut länken visas.

Fortsätt och springa email_auth_example.php fil för att testa din app!

Lösloslös inloggning med sms

För att aktivera lösenordslös inloggning med SMS, gå till Anslutningar> Löslös på Auth0-instrumentpanelen och aktivera SMS alternativ. Som standard använder Auth0 Twilio-tjänsten för att skicka meddelanden. Så fortsätt och skaffa dig ett Twilio-konto.

Från Twilio-instrumentpanelen, få din ACCOUNT SID och AUTH TOKEN och ange dessa värden i Twilio SID och Twilio AuthToken fält på Anslutningar> Löslelös> SMS> Inställningar på Auth0-instrumentbrädan.

Du måste också skapa en ny meddelandeservice på SMS> Meddelandetjänster på din Twilio-instrumentbräda. Efter framgångsrik skapande av tjänsten får du Service-ID, och det är vad du måste komma in i Copilot SID fält vid Anslutningar> Löslelös> SMS> Inställningar.

Slutligen, låt oss ta en titt på hur lösenordslös inloggning med SMS fungerar. Skapa sms_auth_example.php fil. Innehållet är detsamma som email_auth_example.php, förutom logga in() funktion, vilket är som följer.

 funktion inloggning () var lock = nytt Auth0LockPasswordless ('','', allowedConnections: [' sms '], // Bör matcha SMS-anslutningsnamnens auth: redirectUrl:'', responseType:' code '); lock.show (); ;

Allt är ganska mycket detsamma, förutom att vi har tillhandahållit SMS istället för e-post i allowedConnections fast egendom.

Fortsätt och springa sms_auth_example.php fil för att testa din app!

Slutsats

Idag tittade vi på lösenordslös inloggning med Auth0-tjänsten. Bland de möjliga metoder som finns tillgängliga implementerade vi e-post- och sms-metoderna med kodexempel.

Lämna gärna några tankar eller frågor genom att använda foderet nedan!