REST API -godkjenning ved bruk av Laravel Sanctum

REST API -godkjenning ved bruk av Laravel Sanctum

Autentisering er en viktig del av ethvert Laravel -prosjekt. Mange pakker finnes i Laravel for implementering av REST API -autentisering, for eksempel pass, sanctum, JWT, etc. Laravel Sanctum er en enkel og lett Laravel-pakke for å implementere et REST API-autentiseringssystem for mobile applikasjoner, applikasjoner med en side (SPA) og tokenbaserte APIer. Det kan generere flere API-symboler for brukerne, og applikasjonen på en side kan autentiseres ved hjelp av brukerens økt. Det kan brukes som et alternativ til Laravel Passport API. Laravel Sanctum er bedre enn Laravel Pass i mange tilfeller. Det er enklere enn Laravel Passport, og det krever ikke OAUTH2 -godkjenning som Passport -godkjenning. Måtene å implementere Laravel Sanctum -godkjenning og sjekke REST API ved å bruke Postman har blitt vist i denne opplæringen.

Forutsetninger:

Du må fullføre følgende oppgaver før du starter trinnene for å implementere Laravel Sanctum -godkjenningssystemet.

Lag et nytt Laravel -prosjekt som heter SanctumProject. Her, The komponist har blitt brukt til å lage Laravel -prosjektet. Hvis komponist er ikke installert før da, du må installere den før du utfører følgende kommando.

$ komponist Create-Project Laravel/Laravel SanctumProject

Gå til prosjektmappen.

$ CD SanctumProject

Alle eksempler på denne opplæringen er testet i Laravel versjon 9+. Sjekk den installerte versjonen av Laravel.

$ PHP Artisan -Versjon

Kjør følgende kommandoer for å installere og kjøre postbud.

$ sudo snap install postbud

Oppsettdatabase:

Du må opprette en database i MySQL for å implementere autentiseringsoppgaven. Fullfør følgende oppgaver for å opprette en database og sette opp databasen for Laravel -prosjektet.

  1. Kjør følgende SQL -kommando for å opprette en database som heter L_SANCTUM fra MySQL -ledeteksten.
MySQL> Opprett database L_SANCTUM;
  1. Åpne .Env -fil av Laravel -prosjektet og initialisere verdiene for følgende informasjon basert på databasen.
Db_connection = mysql
Db_host = localhost
DB_PORT = 3306
Db_database = l_sanctum
Db_usname = 'brukernavn'
Db_password = 'passord'

Installer og oppsett Laravel Sanctum:

Du må gjøre følgende oppgaver for å installere og sette opp Laravel Sanctum.

Kjør følgende kommando for nedlasting av nødvendige filer for å installere Laravel Sanctum -pakken.

$ komponist krever laravel/sanctum

Kjør følgende kommando for å publisere Sanctum -konfigurasjonen.

$ php Artisan -leverandør: publiser -provider = "Laravel \ Sanctum \ SanctumServiceProvider"

Følgende utgang vises etter publisering av Sanctum pakke med hell.


Migrasjonsfilen for Brukere Tabellen opprettes som standard når du oppretter Laravel -prosjektet. Kjør følgende migrate -kommando for å opprette Brukere Tabell brukt til autentisering.

$ php håndverker migrerer

Oppsett mellomvare:

For å bruke helligdommen, må du legge til følgende linje i 'api'Seksjon av Kjerne.PHP fil. Åpne Kjerne.PHP fil fra stedet, app/http/kjerne.PHP, og legg til linjen.

\ Laravel \ Sanctum \ http \ Middleware \ SikrefrontendRequestSaresteature :: Class,

'api'Seksjon av denne filen vil bli sett ut som følgende bilde.

Opprett API:

Gå til prosjektmappen og kjør følgende kommando for å opprette kontrolleren for API -godkjenningen. AuthController.PHP -fil vil bli opprettet i App/HTTP/Controllers -mappen etter å ha utført kommandoen.

$ PHP Artisan Make: Controller AuthController

Åpne AuthController.PHP og erstatt innholdet med følgende skript. De Register () Funksjon har blitt brukt i skriptet for å validere den innsendte brukerens data og sette inn gyldige data i brukertabellen. Innloggings- () -funksjonen er brukt i skriptet for å autentisere brukeren ved å sjekke legitimasjonene som er sendt inn for påloggingen.

namespace -app \ http \ kontrollere;
Bruk Illuminate \ http \ forespørsel;
Bruk Illuminate \ Support \ Facades \ Hash;
Bruk Illuminate \ Support \ Facades \ Auth;
Bruk app \ modeller \ bruker;
klasse AuthController utvider kontrolleren

offentlig funksjonsregister (forespørsel $ forespørsel)
$ post_data = $ forespørsel-> Valider ([
'navn' => 'påkrevd | streng',
'E -post' => 'påkrevd | streng | e -post | unik: brukere',
'Passord' => 'påkrevd | Min: 8'
]);
$ bruker = bruker :: opprette ([
'navn' => $ post_data ['name'],
'E -post' => $ post_data ['e -post'],
'passord' => hash :: make ($ post_data ['passord']),
]);
$ token = $ user-> creatEtoken ('authtoken')-> plainTextoken;
Returrespons ()-> JSON ([
'Access_token' => $ token,
'token_type' => 'bærer',
]);

offentlig funksjonsinnlogging (forespørsel $ forespørsel)
hvis (!\ Autor :: forsøk ($ request-> bare ('e-post', 'passord')))
Returrespons ()-> JSON ([
'melding' => 'Innloggingsinformasjon er ugyldig.'
], 401);

$ bruker = bruker :: hvor ('e-post', $ forespørsel ['e-post'])-> firstorfail ();
$ token = $ user-> creatEtoken ('authtoken')-> plainTextoken;
Returrespons ()-> JSON ([
'Access_token' => $ token,
'token_type' => 'bærer',
]);

Legg til rute for API:

Åpne api.PHP -fil fra ruter mappe og legg til følgende linjer. Den første linjen har blitt brukt til å legge til AuthController -informasjonen. Den andre linjen har blitt brukt til å legge til API -ruten for å registrere bruker. Den tredje linjen har blitt brukt til å legge til API -ruten for å autentisere den registrerte brukeren.

Bruk app \ http \ kontrollere \ autorcontroller;
Rute :: Post ('/Register', [AuthController :: Class, 'Register']);
Rute :: Post ('/Login', [AuthController :: Class, 'Login']);

Testing API -godkjenning ved bruk av Postman:

Kjør postman -søknaden. Sett forespørselstypen til POST og skriv følgende URL.

http: // 127.0.0.1: 8000/Registrer deg

Etter å ha lagt til de nødvendige parametrene for å registrere en ny brukerkonto, klikker du på Send -knappen. Hvis den nye brukerinformasjonen settes inn i brukernes tabell, vil en Access_Token -informasjon vises som følgende bilde.


Åpne Brukere tabell fra databasen ved å logge på MySQL -serveren eller åpne Phpmyadmin fra nettleseren for å sjekke en ny post er satt inn eller ikke i Brukere tabell. Følgende bilde viser at en ny brukerpost er satt inn i Brukere tabell etter å ha sendt dataene ved å bruke postbud applikasjon.


Nå kan du sjekke API -godkjenningen ved å bruke postbudet. Skriv følgende URL i Postman -applikasjonen etter å ha valgt innlegget som forespørselstype. Skriv inn den gyldige e -postadressen og passordet for å autentisere den eksisterende brukeren og klikk på Sende knapp. Hvis den oppgitte brukerens informasjon er gyldig, Access_token Informasjon vil vises som følgende bilde. Feilmeldingen vises for den ugyldige brukerens informasjon.

Konklusjon:

Den enkle måten å implementere API -godkjenning i Laravel -prosjektet ved å bruke Sanctum Pakken er vist i denne opplæringen. Laravel -brukere vil få konseptet API -godkjenning og kunne implementere og sjekke autentiseringen ved hjelp av Postman etter å ha lest denne opplæringen.