Sikker, passordløs godkjenning ved hjelp av Auth0

I denne artikkelen lærer du hvordan du konfigurerer passordløs godkjenning ved hjelp av Auth0-tjenesten. Auth0 lar deg outsource godkjenningsfunksjoner for appen din.

Hva er Auth0?

Auth0 er et verktøy for autentisering-som-en-tjeneste som gjør implementering av autentiseringsrelaterte funksjoner for din app eller nettsted til en bris. Hvis du har bygget en app og du bare vil outsource autentiserings- og autorisasjonsfunksjonene, er en tjeneste som Auth0 noe du bør vurdere.

La meg raskt oppsummere hva Auth0 har å tilby:

  • enkelt pålogging
  • multifaktorautentisering
  • passordløse innlogginger
  • brukeradministrasjon
  • og mye mer!

Førstegangs oppsett

I denne delen går vi gjennom det første oppsettet som forberedelse for å sette opp passordløs godkjenning.

Før du går videre, må du sørge for å installere Composer som det vil bli brukt til å installere faktiske Auth0 SDKer ved hjelp av composer.json fil. Også, hvis du vil følge med eksemplene i denne artikkelen, gå videre og få deg en gratis konto med Auth0.

La oss begynne med å ta tak i en klone av prøveprosjektet.

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

Installer avhengigheter

Fortsett å løpe komponent installasjon kommandoen for å installere avhengighetene.

cd 00-Starter-Seed-komponentinstallasjon

Ifølge composer.json fil, du burde ha installert vlucas / phpdotenv og auth0 / auth0-php pakker.

"navn": "auth0 / basic-webapp-prøve", "beskrivelse": "Grunnprøve for å sikre en WebApp med Auth0", "krever": "vlucas / phpdotenv": "2.4.0", "auth0 / auth0-php ":" ~ 5.0 "," lisens ":" MIT "," forfattere ": [" navn ":" Martin Gontovnikas "," email ":" [email protected] ", ":" Germán Lena "," e-post ":" [email protected] "] 

De vlucas / phpdotenv biblioteket brukes til å initialisere miljøvariabler fra .env fil. Dermed kan du skille konfigurasjon fra koden som endres mellom miljøer.

På den annen side, auth0 / auth0-php pakken er den som vil hjelpe oss med å sette opp autorisasjon i vår app.

Konfigurer miljøvariablene

Deretter la vi konfigurere konfigurasjonen for vår app i .env fil. Gå videre og opprett .env fil ved å kopiere den fra .env.example fil.

cp .env.example .env

Den inneholder konfigurasjonsverdier som vil bli brukt 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 bør kunne finne de fleste innstillingene under Programmer> Standard App> Innstillinger på Auth0 dashbordet. Vær oppmerksom på at jeg bruker standardprogrammet som er opprettet av systemet. Selvfølgelig kan du gå videre og opprette en ny applikasjon hvis du vil gjøre det.

De AUTH0_CALLBACK_URL er nettadressen til appen din der Auth0 vil omdirigere brukere etter innlogging og logg ut. Verdien du angir i dette feltet må konfigureres under Tillat tilbakekallingsadresser i programinnstillingene på Auth0-dashbordet.

Passordløs innlogging ved hjelp av e-post

For å aktivere passordløs innlogging med e-post, gå til Tilkoblinger> Passordløs på Auth0 dashbordet og aktivere e-post alternativ.

I de fleste tilfeller er standard konfigurasjonsinnstillinger under e-post bare trene ut av esken. Selvfølgelig, hvis du vil endre noen innstillinger, fortsett og gjør det. Ikke glem å aktivere appene som du vil ha passordløs godkjenning på Tilkoblinger> Passordløs> Email> Programmer.

Med det første oppsettet på plass, kan vi gå videre og opprette en fil som implementerer passordløs logg inn ved hjelp av e-post.

Implement Passwordless Login

Gå videre og opprett email_auth_example.php fil med følgende innhold.

 $ domain_id' => $ client_id, 'client_secret' => $ client_secret, 'redirect_uri' => $ redirect_uri, 'audience' => $ målgruppe, 'scope' => 'openid profil', 'persist_id_token' => sant, 'persist_access_token' => sant, 'persist_refresh_token' => true,]); $ userInfo = $ auth0-> getUser (); ?>           
Passordløs innlogging ved hjelp av e-post

Velkommen

Logg ut

I begynnelsen har vi tatt med automatiske lastere som er ansvarlige for å laste Auth0- og miljøvariabelignende klasser.

Etter det initierer vi konfigurasjonsvariabler fra .env fil ved hjelp av getenv funksjon.

Deretter har vi kalt getUser Metode på Auth0-objektet for å sjekke om en aktiv økt er tilstede. Basert på det viser vi Logg inn lenke hvis det ikke er aktiv økt. Ellers brukernavnet til den innloggede brukeren med Logg ut lenken vises.

Gå videre og kjøre email_auth_example.php fil for å teste appen din!

Passordløs innlogging ved hjelp av SMS

For å aktivere passordløs innlogging ved hjelp av SMS, gå til Tilkoblinger> Passordløs på Auth0 dashbordet og aktivere tekstmelding alternativ. Som standard bruker Auth0 Twilio-tjenesten til å sende meldinger. Så gå videre og få deg en Twilio-konto.

Fra Twilio dashbordet, få din KONTO SID og AUTH TOKEN og skriv inn disse verdiene i Twilio SID og Twilio AuthToken felt på Tilkoblinger> Passordløs> SMS> Innstillinger på Auth0 dashbordet.

Du må også opprette en ny meldingstjeneste på SMS> Meldingsservice på Twilio dashbordet ditt. Etter vellykket opprettelse av tjenesten, får du Tjeneste ID, og det er det du må skrive inn i Copilot SID feltet på Tilkoblinger> Passordløs> SMS> Innstillinger.

Til slutt, la oss ta en titt på hvordan passordløs innlogging ved hjelp av SMS fungerer. Opprett sms_auth_example.php fil. Innholdet er det samme som email_auth_example.php, bortsett fra Logg Inn() funksjon, som er som følger.

 funksjon logg inn () var lock = nytt Auth0LockPasswordless ('','', allowedConnections: [' sms '], // Skal matche SMS-tilkoblingsnavnet auth: redirectUrl:'', responsType:' kode '); lock.show (); ;

Alt er ganske mye det samme, bortsett fra at vi har gitt tekstmelding i stedet for e-post i allowedConnections eiendom.

Gå videre og kjøre sms_auth_example.php fil for å teste appen din!

Konklusjon

I dag så vi på passordløs innlogging med Auth0-tjenesten. Blant de mulige tilgjengelige metodene, implementerte vi e-post og SMS-metoder med kodeeksempler.

Ta gjerne tanker eller spørsmål ved å bruke feedet under!