Veilige, wachtwoordloze authenticatie met Auth0

In dit artikel leert u hoe u wachtwoordloze authenticatie kunt instellen met behulp van de Auth0-service. Met Aut0 kunt u verificatiefuncties voor uw app uitbesteden.

Wat is Auth0?

Auth0 is een authenticatie-als-een-service-tool die de implementatie van authenticatie-gerelateerde functies voor uw app of site een eitje maakt. Als u een app hebt gebouwd en u de authenticatie- en autorisatiefuncties wilt uitbesteden, is een service als Auth0 iets dat u moet overwegen.

Laat me snel samenvatten wat Auth0 te bieden heeft:

  • eenmalig inloggen
  • multi-factor authenticatie
  • inloggen zonder wachtwoord
  • gebruikersbeheer
  • en veel meer!

Initiële setup

In dit gedeelte zullen we de initiële installatie doornemen ter voorbereiding op het instellen van de wachtwoordloze authenticatie.

Zorg ervoor dat u Composer installeert voordat u doorgaat, want dat wordt gebruikt om de werkelijke Auth0 SDK's te installeren met behulp van de composer.json het dossier. Als u de voorbeelden in dit artikel wilt volgen, kunt u ook een gratis account bij Auth0 aanvragen.

Laten we beginnen met het grijpen van een kloon van het voorbeeldproject.

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

Afhankelijkheden installeren

Ga je gang de loop de componist installeren commando om de afhankelijkheden te installeren.

cd 00-Starter-Seed composer install

Volgens de composer.json bestand, zou u het moeten hebben geïnstalleerd vlucas / phpdotenv en auth0 / auth0-php pakketjes.

"name": "auth0 / basic-webapp-sample", "description": "Basissample voor het beveiligen van een WebApp met Auth0", "require": "vlucas / phpdotenv": "2.4.0", "auth0 / auth0-php ":" ~ 5.0 "," licentie ":" MIT "," auteurs ": [" name ":" Martin Gontovnikas "," email ":" [email protected] ", " naam ":" Germán Lena "," email ":" [email protected] "] 

De vlucas / phpdotenv library wordt gebruikt om omgevingsvariabelen van de. te initialiseren .env het dossier. Op deze manier kunt u de configuratie scheiden van de code die tussen omgevingen verandert.

Aan de andere kant, de auth0 / auth0-php pakket is het pakket waarmee we autorisatie kunnen instellen in onze app.

Configureer de omgevingsvariabelen

Laten we vervolgens de configuratie voor onze app instellen in de .env het dossier. Ga je gang en maak de .env bestand door het te kopiëren van de .env.example het dossier.

cp .env.voorbeeld .env

Het bevat configuratiewaarden die door de Auth0-bibliotheek worden gebruikt.

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

Je zou de meeste instellingen hieronder kunnen vinden Toepassingen> Standaard app> Instellingen op het Auth0-dashboard. Let op: ik gebruik de standaardtoepassing die door het systeem is gemaakt. Natuurlijk kunt u doorgaan en een nieuwe applicatie maken als u dat wilt.

De AUTH0_CALLBACK_URL is de URL van uw app waar Auth0 gebruikers zal doorsturen na inloggen en afmelden. De waarde die u in dit veld hebt ingesteld, moet worden geconfigureerd onder Toegestane callback-URL's in de applicatie-instellingen op het Auth0-dashboard.

Wachtwoordloos inloggen via e-mail

Om wachtwoordloos aanmelden via e-mail in te schakelen, gaat u naar Verbindingen> Wachtwoordloos op het Auth0-dashboard en schakel het in E-mail keuze.

In de meeste gevallen zijn de standaardconfiguratie-instellingen onder E-mail werk gewoon uit de doos. Natuurlijk, als u instellingen wilt wijzigen, doe dat dan. Vergeet niet om de apps in te schakelen waarvoor u wachtwoordloze authenticatie wilt gebruiken Verbindingen> Wachtwoordloos> E-mail> Toepassingen.

Met de initiële installatie kunnen we doorgaan en een bestand creëren dat de wachtwoordloze login implementeert met behulp van e-mail.

Implementeer wachtwoordloze login

Ga je gang en maak de email_auth_example.php bestand met de volgende inhoud.

 $ domein, 'client_id' => $ client_id, 'client_secret' => $ client_secret, 'redirect_uri' => $ redirect_uri, 'audience' => $ audience, 'scope' => 'openid profile', 'persist_id_token' => waar, 'persist_access_token' => true, 'persist_refresh_token' => true,]); $ userInfo = $ auth0-> getUser (); ?>           
Wachtwoordloos inloggen via e-mail

Welkom

Uitloggen

In het begin hebben we automatische laders opgenomen die verantwoordelijk zijn voor het laden van de klassen Auth0 en omgevingsvariabele.

Vervolgens initialiseren we configuratievariabelen van de .env bestand met behulp van de getenv functie.

Vervolgens hebben we de getUser methode op het Auth0-object om te controleren of een actieve sessie aanwezig is. Op basis daarvan geven we de Aanmelden link als er geen actieve sessie is. Anders wordt de gebruikersnaam van de ingelogde gebruiker met de Uitloggen link wordt weergegeven.

Ga je gang en voer de email_auth_example.php bestand om uw app te testen!

Wachtwoordloos inloggen met sms

Om wachtwoordloos inloggen met SMS in te schakelen, gaat u naar Verbindingen> Wachtwoordloos op het Auth0-dashboard en schakel het in sms keuze. Auth0 gebruikt standaard de Twilio-service om berichten te verzenden. Dus ga je gang en krijg een Twilio-account.

Haal het uwe uit het Twilio-dashboard ACCOUNT SID en AUTH TOKEN en voer die waarden in de Twilio SID en Twilio AuthToken velden op Verbindingen> Wachtwoordloos> SMS> Instellingen op het Auth0-dashboard.

U moet ook een nieuwe berichtenservice maken op SMS> Messaging Services op je Twilio-dashboard. Na het succesvol maken van de service, krijgt u de Service ID, en dat is wat je nodig hebt om in te voeren Copiloot SID veld op Verbindingen> Wachtwoordloos> SMS> Instellingen.

Laten we tot slot eens kijken naar hoe inloggen met wachtwoordloos inloggen werkt. Maak het sms_auth_example.php het dossier. De inhoud is hetzelfde als email_auth_example.php, behalve de Log in() functie, die als volgt is.

 function login () var lock = new Auth0LockPasswordless ('','', allowedConnections: [' sms '], // moet overeenkomen met de sms-verbindingsnaam auth: redirectUrl:'', responseType:' code '); lock.show (); ;

Alles is vrijwel hetzelfde, behalve dat we hebben verstrekt sms in plaats van e-mail in de allowedConnections eigendom.

Ga je gang en voer de sms_auth_example.php bestand om uw app te testen!

Conclusie

Vandaag hebben we gekeken naar inloggen zonder wachtwoord met de Auth0-service. Onder de mogelijke beschikbare methoden hebben we de e-mail- en sms-methoden geïmplementeerd met codevoorbeelden.

U kunt uw gedachten of vragen achterlaten via de onderstaande feed!