Sichere, kennwortlose Authentifizierung mit Auth0

In diesem Artikel erfahren Sie, wie Sie die kennwortlose Authentifizierung mit dem Auth0-Dienst einrichten. Mit Auth0 können Sie Authentifizierungsfunktionen für Ihre App auslagern.

Was ist Auth0??

Auth0 ist ein Tool zur Authentifizierung als Dienst, mit dem die Implementierung von Authentifizierungsfunktionen für Ihre App oder Ihre Site zum Kinderspiel wird. Wenn Sie eine App erstellt haben und nur die Authentifizierungs- und Autorisierungsfunktionen auslagern möchten, sollten Sie einen Dienst wie Auth0 in Betracht ziehen.

Lassen Sie mich kurz zusammenfassen, was Auth0 zu bieten hat:

  • Einmalige Anmeldung
  • Multi-Faktor-Authentifizierung
  • Passwortlose Anmeldungen
  • Benutzerverwaltung
  • und vieles mehr!

Ersteinrichtung

In diesem Abschnitt werden wir die anfängliche Einrichtung durchlaufen, um die Kennwortlose Authentifizierung einzurichten.

Bevor Sie weitermachen, stellen Sie sicher, dass Sie Composer installieren, da dieser zur Installation der aktuellen Auth0-SDKs verwendet wird composer.json Datei. Wenn Sie den Beispielen in diesem Artikel folgen möchten, erhalten Sie ein kostenloses Konto bei Auth0.

Beginnen wir mit einem Klon des Beispielprojekts.

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

Installieren Sie Abhängigkeiten

Gehen Sie voran den Lauf Komponist installieren Befehl zum Installieren der Abhängigkeiten.

cd 00-Starter-Seed-Composer installieren

Laut composer.json Datei, Sie sollten die installiert haben vlucas / phpdotenv und auth0 / auth0-php Pakete.

"name": "auth0 / basic-webapp-sample", "description": "Grundlegendes Beispiel zum Sichern einer WebApp mit Auth0", "required": "vlucas / phpdotenv": "2.4.0", "auth0 / auth0-php ":" ~ 5.0 "," license ":" MIT "," autoren ": [" name ":" Martin Gontovnikas "," email ":" [email protected] ", " name ":" Germán Lena "," email ":" [email protected] "] 

Das vlucas / phpdotenv Die Bibliothek wird zum Initialisieren von Umgebungsvariablen aus der Datenbank verwendet .env Datei. Auf diese Weise können Sie die Konfiguration von dem Code trennen, der sich zwischen den Umgebungen ändert.

Auf der anderen Seite die auth0 / auth0-php Paket ist das, das uns hilft, Autorisierung in unserer App einzurichten.

Konfigurieren Sie die Umgebungsvariablen

Als Nächstes richten Sie die Konfiguration für unsere App im ein .env Datei. Mach weiter und erstelle das .env Datei durch Kopieren aus dem .env.beispiel Datei.

cp.env.example .env

Es enthält Konfigurationswerte, die von der Auth0-Bibliothek verwendet werden.

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

Sie sollten die meisten Einstellungen unter finden Anwendungen> Standard-App> Einstellungen im Auth0-Dashboard. Bitte beachten Sie, dass ich die vom System erstellte Standardanwendung verwende. Natürlich können Sie eine neue Anwendung erstellen, wenn Sie möchten.

Das AUTH0_CALLBACK_URL ist die URL Ihrer App, über die Auth0 Benutzer nach dem An- und Abmelden umleitet. Der Wert, den Sie in diesem Feld einstellen, muss unter konfiguriert werden Zulässige Callback-URLs in den Anwendungseinstellungen im Auth0-Dashboard.

Passwortlose Anmeldung über E-Mail

Um die Kennwortlose Anmeldung über E-Mail zu aktivieren, gehen Sie zu Verbindungen> Kennwortlos im Auth0-Dashboard und aktivieren Sie die Email Möglichkeit.

In den meisten Fällen sind die Standard-Konfigurationseinstellungen unter Email einfach aus der Box arbeiten. Wenn Sie Einstellungen ändern möchten, machen Sie das natürlich. Vergessen Sie nicht, die Apps zu aktivieren, für die Sie die kennwortlose Authentifizierung wünschen Verbindungen> Kennwortlos> E-Mail> Anwendungen.

Mit der Ersteinrichtung können wir eine Datei erstellen, die das kennwortlose Anmelden per E-Mail implementiert.

Implementiere passwortloses Login

Mach weiter und erstelle das email_auth_example.php Datei mit folgendem Inhalt.

 $ domain, 'client_id' => $ client_id, 'client_secret' => $ client_secret, 'redirect_uri' => $ redirect_uri, 'crowd' => $ publikum, 'scope' => 'openid profile', 'persist_id_token' => wahr, 'persist_access_token' => wahr, 'persist_refresh_token' => wahr,])); $ userInfo = $ auth0-> getUser (); ?>           
Passwortlose Anmeldung über E-Mail

Herzlich willkommen

Ausloggen

Zu Beginn haben wir Auto Loader hinzugefügt, die für das Laden der Klassen für Auth0 und Umgebungsvariablen zuständig sind.

Anschließend initialisieren wir Konfigurationsvariablen aus der .env Datei mit der getenv Funktion.

Als nächstes haben wir die angerufen getUser Methode für das Auth0-Objekt, um zu prüfen, ob eine aktive Sitzung vorhanden ist. Darauf basierend zeigen wir die Einloggen Link, wenn keine aktive Sitzung vorhanden ist. Ansonsten der Benutzername des angemeldeten Benutzers mit der Ausloggen Link wird angezeigt.

Mach weiter und lauf die email_auth_example.php Datei, um Ihre App zu testen!

Passwortlose Anmeldung mit SMS

Um die kennwortlose Anmeldung mit SMS zu aktivieren, gehen Sie zu Verbindungen> Kennwortlos im Auth0-Dashboard und aktivieren Sie die SMS Möglichkeit. Standardmäßig verwendet Auth0 den Twilio-Dienst zum Senden von Nachrichten. Also machen Sie sich ein Twilio-Konto.

Über das Twilio-Dashboard erhalten Sie Ihr KONTO SID und AUTH TOKEN und geben Sie diese Werte in das Feld ein Twilio SID und Twilio AuthToken Felder an Verbindungen> Kennwortlos> SMS> Einstellungen im Auth0-Dashboard.

Sie müssen auch einen neuen Messaging-Dienst unter erstellen SMS> Messaging-Dienste auf Ihrem Twilio-Dashboard. Nach erfolgreicher Erstellung des Dienstes erhalten Sie die Service-ID, und das ist es, was Sie in das eingeben müssen Copilot-SID Feld um Verbindungen> Kennwortlos> SMS> Einstellungen.

Lassen Sie uns einen kurzen Blick darauf werfen, wie das kennwortlose Anmelden mit SMS funktioniert. Erstellen Sie die sms_auth_example.php Datei. Der Inhalt ist derselbe wie email_auth_example.php, außer der Anmeldung() Funktion, die wie folgt ist.

 function login () var lock = new Auth0LockPasswordless ('','', allowedConnections: [' sms '], // sollte mit dem SMS-Verbindungsnamen übereinstimmen: auth: redirectUrl:'', responseType:' code '); lock.show (); ;

Alles ist ziemlich gleich, außer dass wir es zur Verfügung gestellt haben SMS anstatt Email in dem zulässige Verbindungen Eigentum.

Mach weiter und lauf die sms_auth_example.php Datei, um Ihre App zu testen!

Fazit

Heute haben wir uns mit dem Auth0-Dienst ein passwortloses Login angesehen. Als mögliche Methoden haben wir die E-Mail- und SMS-Methoden mit Codebeispielen implementiert.

Fühlen Sie sich frei, Ihre Gedanken oder Fragen mit dem Feed unten zu hinterlassen!