Autenticazione sicura e senza password con Auth0

In questo articolo, imparerai come impostare l'autenticazione senza password utilizzando il servizio Auth0. Auth0 ti consente di esternalizzare le funzionalità di autenticazione per la tua app.

Cos'è Auth0?

Auth0 è uno strumento di autenticazione come servizio che semplifica l'implementazione delle funzionalità relative all'autenticazione per la tua app o il tuo sito. Se hai creato un'app e desideri semplicemente esternalizzare le funzionalità di autenticazione e autorizzazione, è necessario prendere in considerazione un servizio come Auth0.

Permettetemi di riassumere rapidamente ciò che Auth0 ha da offrire:

  • single sign-on
  • autenticazione a più fattori
  • accessi senza password
  • Gestione utenti
  • e altro ancora!

Configurazione iniziale

In questa sezione, esamineremo la configurazione iniziale in preparazione per l'impostazione dell'autenticazione senza password.

Prima di proseguire, assicurati di installare Composer in modo da poter utilizzare gli autentici SDK Auth0 che utilizzano composer.json file. Inoltre, se si desidera seguire gli esempi in questo articolo, andare avanti e ottenere un account gratuito con Auth0.

Iniziamo afferrando un clone del progetto di esempio.

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

Installa dipendenze

Vai avanti, esegui il installazione di compositore comando per installare le dipendenze.

installazione di cd 00-Starter-Seed compositore

Secondo il composer.json file, dovresti aver installato il vlucas / phpdotenv e Auth0 / Auth0-php pacchi.

"nome": "auth0 / basic-webapp-sample", "description": "Campione di base per la protezione di una WebApp con Auth0", "require": "vlucas / phpdotenv": "2.4.0", "auth0 / auth0-php ":" ~ 5.0 "," licenza ":" MIT "," autori ": [" nome ":" Martin Gontovnikas "," email ":" [email protected] ", " nome ":" Germán Lena "," email ":" [email protected] "] 

Il vlucas / phpdotenv la libreria viene utilizzata per inizializzare le variabili di ambiente da .ENV file. Pertanto, consente di separare la configurazione dal codice che cambia tra gli ambienti.

D'altra parte, il Auth0 / Auth0-php il pacchetto è quello che ci aiuterà a impostare l'autorizzazione nella nostra app.

Configura le variabili d'ambiente

Quindi, impostiamo la configurazione per la nostra app in .ENV file. Vai avanti e crea il .ENV file copiandolo dal .env.example file.

cp .env.example .env

Contiene i valori di configurazione che verranno utilizzati dalla libreria Auth0.

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

Dovresti essere in grado di trovare la maggior parte delle impostazioni sotto Applicazioni> App predefinita> Impostazioni nella dashboard Auth0. Si noti che sto utilizzando l'applicazione predefinita creata dal sistema. Certo, potresti andare avanti e creare una nuova applicazione se vuoi farlo.

Il AUTH0_CALLBACK_URL è l'URL della tua app in cui Auth0 reindirizzerà gli utenti dopo il login e il logout. Il valore impostato in questo campo deve essere configurato sotto URL di richiamata consentiti nelle impostazioni dell'applicazione sulla dashboard Auth0.

Accesso senza password tramite e-mail

Per abilitare l'accesso senza password tramite e-mail, vai a Collegamenti> Senza password nella dashboard Auth0 e abilitare il E-mail opzione.

Nella maggior parte dei casi, le impostazioni di configurazione di default sotto E-mail basta lavorare fuori dagli schemi. Certo, se vuoi cambiare qualche impostazione, vai avanti e fallo. Non dimenticare di abilitare le app per le quali desideri l'autenticazione senza password Connessioni> Senza password> Email> Applicazioni.

Con la configurazione iniziale in atto, possiamo procedere e creare un file che implementa l'accesso senza password tramite e-mail.

Implementare il login senza password

Vai avanti e crea il email_auth_example.php file con il seguente contenuto.

 $ dominio, 'client_id' => $ client_id, 'client_secret' => $ client_secret, 'redirect_uri' => $ redirect_uri, 'audience' => $ audience, 'scope' => 'openid profile', 'persist_id_token' => true, 'persist_access_token' => true, 'persist_refresh_token' => true,]); $ userInfo = $ auth0-> getUser (); ?>           
Accesso senza password tramite e-mail

benvenuto

Disconnettersi

All'inizio abbiamo incluso i caricatori automatici che sono responsabili del caricamento delle classi relative a Auth0 e variabili relative all'ambiente.

Successivamente, inizializziamo le variabili di configurazione da .ENV file usando il getenv funzione.

Successivamente, abbiamo chiamato il getUser metodo sull'oggetto Auth0 per verificare se è presente una sessione attiva. Sulla base di ciò, mostriamo il Registrati link se non c'è una sessione attiva. Altrimenti, il nome utente dell'utente connesso con il Disconnettersi collegamento viene visualizzato.

Vai avanti e avvia il email_auth_example.php file per testare la tua app!

Accesso senza password tramite SMS

Per abilitare il login senza password usando SMS, vai a Collegamenti> Senza password nella dashboard Auth0 e abilitare il sms opzione. Per impostazione predefinita, Auth0 utilizza il servizio Twilio per inviare messaggi. Quindi vai avanti e procurati un account Twilio.

Dal cruscotto Twilio, prendi il tuo ACCOUNT SID e AUTH TOKEN e inserire quei valori nel Twilio SID e Twilio AuthToken campi a Collegamenti> Senza password> SMS> Impostazioni nella dashboard Auth0.

Inoltre, è necessario creare un nuovo servizio di messaggistica su SMS> Servizi di messaggistica sulla tua dashboard Twilio. Dopo aver creato con successo il servizio, otterrai il Servizio ID, ed è quello che dovrai inserire nel Copilot SID campo a Collegamenti> Senza password> SMS> Impostazioni.

Infine, diamo un'occhiata a come funziona il login senza password tramite SMS. Crea il sms_auth_example.php file. I contenuti sono gli stessi di email_auth_example.php, tranne il accesso() funzione, che è la seguente.

 function login () var lock = new Auth0LockPasswordless ('','', allowedConnections: [' sms '], // deve corrispondere all'autenticazione del nome della connessione SMS: redirectUrl:'', responseType:' code '); lock.show (); ;

Tutto è praticamente lo stesso, tranne che abbiamo fornito sms invece di e-mail nel allowedconnections proprietà.

Vai avanti e avvia il sms_auth_example.php file per testare la tua app!

Conclusione

Oggi abbiamo esaminato l'accesso senza password con il servizio Auth0. Tra i possibili metodi disponibili, abbiamo implementato i metodi email e SMS con esempi di codice.

Sentiti libero di lasciare qualsiasi pensiero o domanda usando il feed qui sotto!