Fordeler med å bruke Laravel Pass:
OAUTH2-protokollen kan integreres med Laravel-applikasjonen ved hjelp av Laravel-passordet. Når brukeren vil hente eller sette inn data fra applikasjonen, vil tilgangsforespørselen bli sendt av denne protokollen. Tillatelsen vil bli gitt til brukeren ved å autorisere brukeren for tilgang. Noen viktige fordeler med passautentisering er nevnt nedenfor.
- Passgodkjenning er bedre enn Laravel-standardgodkjenning fordi den også kan brukes til det eksterne nettstedet.
- Normal API-autentisering kan bare brukes til å få tilgang til innholdet på Laravel-nettstedet der det er implementert. Men det eksterne nettstedet kan få tilgang til innholdet på Laravel-nettstedet med tillatelse fra den godkjente brukeren og tokenet.
Forutsetninger:
Du må gjøre følgende før du installerer og bruker Laravel Passport for brukerautentisering.
- Installer et nytt Laravel-prosjekt
- Sett opp databasetilkobling
Installer Laravel Passport:
Kjør følgende kommando fra terminalen for å installere Laravel Passport-pakken ved hjelp av komponisten.
$ komponist krever laravel / passDu må lage brukere tabellen i databasen før du installerer passpakken. Tre migreringsfiler og en Bruker modellen er generert automatisk når et nytt Laravel-prosjekt opprettes. En av dem brukes til å lage en brukere bord. Gå til Laravel-prosjektmappen og kjør følgende migrer kommando for å opprette brukere bord.
$ php håndverker migrererKjør følgende kommando for å installere passpakken for prosjektet.
$ php håndverkspass: installerDu får følgende informasjon etter at du har installert Laravel-pass i prosjektet. Her genereres to hemmelige nøkler. En for personlig tilgangsklient og en annen for passordtilskuddsklient.
Laravel passkonfigurasjon:
Åpne Bruker modellen som ligger på stedet, App \ modell.php fra en redaktør, og modifiser modellen som nedenfor. Legge til Laravel \ Passport \ HasApiTokens i begynnelsen av klassen og bruk HasApiTokens og Notifiable i klassen.
navneområdet App;bruk Illuminate \ Contracts \ Auth \ MustVerifyEmail;
bruk Illuminate \ Foundation \ Auth \ User som autentiserbar;
bruk Illuminate \ Notifications \ Notifiable;
// Lagt til her
bruk Laravel \ Passport \ HasApiTokens;
klasse Bruker utvider Authenticatable
// Endret her
bruk HasApiTokens, varslingspliktig;
/ **
* Attributtene som kan tildeles masse.
*
* @var matrise
* /
beskyttet $ fyllbar = [
'navn', 'e-post', 'passord',
];
/ **
* Attributtene som skal skjules for matriser.
*
* @var matrise
* /
beskyttet $ skjult = [
'passord', 'remember_token',
];
/ **
* Attributtene som skal kastes til innfødte typer.
*
* @var matrise
* /
beskyttede $ casts = [
'email_verified_at' => 'datetid',
];
Deretter åpner du app / Providers / AuthServiceProvider.php for å registrere rutene som er nødvendige for å utstede og tilbakekalle tilgangstokener. Pass :: ruter-metoden kalles innen oppstartsmetoden til AuthServiceProvider. Endre innholdet i filen vist nedenfor.
namespace App \ Providers;bruk Illuminate \ Foundation \ Support \ Providers \ AuthServiceProvider som ServiceProvider;
bruk Illuminate \ Support \ Facades \ Gate;
// pass er lagt til her
bruk Laravel \ Passport \ Passport;
klasse AuthServiceProvider utvider ServiceProvider
/ ** Retningslinjekartleggingen for applikasjonen.
*
* @var matrise
* /
beskyttede $ policyer = [
'App \ Model' => 'App \ Policies \ ModelPolicy',
];
/ **
* Registrer eventuelle godkjenningstjenester.
*
* @ retur ugyldig
* /
offentlig funksjonsstart ()
$ dette-> registerPolicies ();
Pass :: ruter ();
Pass :: tokensExpireIn (nå () -> addDays (15));
Pass :: refreshTokensExpireIn (nå () -> addDays (30));
Deretter åpner du config \ app.php og sett inn følgende linje i leverandører array for å inkludere den nødvendige klassen for bruk av Laravel-pass.
Laravel \ Passport \ PassportServiceProvider :: klasse,Deretter åpner du config \ auth.php og sett driveren til API til pass i vakter array vist nedenfor.
'vakter' => ['web' => [
'driver' => 'økt',
'provider' => 'brukere',
],
'api' => [
'driver' => 'pass',
'provider' => 'brukere',
'hash' => false,
],
],
Implementkontroller for registrering og godkjenning:
Du må opprette en kontroller for å implementere godkjenningssystemet ved hjelp av passpakken. Kjør følgende kommando fra prosjektets rotmappe for å opprette ApiController.
$ php håndverkermerke: controller ApiControllerI neste del av denne opplæringen legges det til tre metoder inne i ApiController for å opprette en ny bruker, autentisere en bruker og få detaljert informasjon om en autentisert bruker.
EN. Registrere
En ny bruker kan opprettes i brukere tabellen ved å implementere en registrere() metode. Legg til følgende kode i ApiController å implementere register API. De nødvendige feltverdiene for å opprette ny bruker blir hentet av argumentet, $ forespørsel av metoden registrere(). Validator klasse brukes til å kontrollere feltverdiene er gyldige eller ikke basert på de definerte valideringsreglene. Hvis den mislykkes () metoden returnerer sant, vil den returnere en feilmelding i JSON-format. Hvis den mislykkes () metoden returnerer falsk, så vil et hash-passord generere og ny brukerinformasjon settes inn i brukertabellen. Et token genereres etter at den nye brukeren er opprettet, og en suksessmelding med tokenverdi returneres.
offentlig funksjonsregister (Be om $ forespørsel)/ ** Valider dataene ved hjelp av valideringsregler
* /
$ validator = Validator :: make ($ request-> all (), [
'name' => 'obligatorisk',
'email' => 'obligatorisk | e-post',
'password' => 'obligatorisk',
]);
/ ** Sjekk at valideringen mislykkes eller ikke
* /
hvis ($ validator-> mislykkes ())
/ ** Returner feilmelding
* /
returrespons () -> json (['error' => $ validator-> feil ()]);
/ ** Lagre alle verdiene i feltene
* /
$ newuser = $ request-> all ();
/ ** Opprett et kryptert passord ved hjelp av hashen
* /
$ newuser ['password'] = Hash :: make ($ newuser ['password']);
/ ** Sett inn en ny bruker i tabellen
* /
$ user = User :: create ($ newuser);
/ ** Opprett et tilgangstoken for brukeren
* /
$ success ['token'] = $ user-> createToken ('AppName') -> accessToken;
/ ** Returner suksessmelding med tokenverdi
* /
returrespons () -> json (['suksess' => $ suksess], 200);
B. Logg Inn:
Enhver bruker kan godkjennes ved å implementere påloggingen () metode. Legg til følgende kode inne ApiController for å implementere et påloggings-API. De nødvendige feltene for å godkjenne en bruker blir hentet fra $ forespørsel av påloggingen () metode. forsøk() metoden vil sjekke verdiene på e-post og passord for autentisering. Hvis verdiene samsvarer med verdiene til brukere i tabellen, blir posten til den aktuelle brukeren hentet og en tokenverdi returneres. Hvis autentiseringen mislykkes, vil an Uautorisert meldingen vil bli returnert.
pålogging for offentlig funksjon (Be om $ forespørsel)/ ** Les legitimasjonen som ble gitt av brukeren
* /
$ legitimasjon = [
'email' => $ forespørsel-> e-post,
'passord' => $ forespørsel-> passord
];
/ ** Sjekk at legitimasjonen er gyldig eller ikke
* /
hvis (auth () -> forsøk ($ legitimasjon))
/ ** Lagre informasjonen til godkjent bruker
* /
$ bruker = Auth :: bruker ();
/ ** Opprett token for den autentiserte brukeren
* /
$ success ['token'] = $ user-> createToken ('AppName') -> accessToken;
returrespons () -> json (['suksess' => $ suksess], 200);
annet
/ ** Returner feilmelding
* /
returrespons () -> json (['error' => 'Uautorisert'], 401);
C. Brukerdetaljer
Du kan få detaljert informasjon om alle brukere etter godkjenning ved å implementere User API. Legg til følgende kode i ApiController for å hente detaljert informasjon om enhver godkjent bruker.
offentlig funksjon user_info ()/ ** Hent informasjonen til den autentiserte brukeren
* /
$ bruker = Auth :: bruker ();
/ ** Returner brukerens detaljer
* /
returrespons () -> json (['suksess' => $ bruker], 200);
API-rute for kontrolleren:
Åpne ruter \ app.php fil og modifiser innholdet med følgende koder for å definere påloggingsruten, registrere rute og detaljrute for API-tjenester.
/ ** Rute for påloggings-API * /Rute :: post ('login', '[email protected]');
/ ** Rute for register API * /
Rute :: post ('register', '[email protected]');
/ ** Rute for detaljer bruker-API * /
Rute :: mellomvare ('auth: api') -> gruppe (funksjon ()
Rute :: post ('detaljer', '[e-postbeskyttet] _info');
);
Kjør følgende kommando for å starte Laravel-utviklingsserveren.
$ php håndverker servererTest API-autentisering ved hjelp av postbud:
Postman er et veldig nyttig verktøy for å teste RESTful APIer. HTTP-forespørselen kan genereres veldig enkelt for å teste API-funksjoner ved å bruke brukergrensesnittet til dette programmet uten å skrive en stor mengde kode for å sende forespørsler. Postman kan håndtere forskjellige HTTP-forespørsler og verktøy for å utvikle API-er. Den har både betalte og gratis versjoner for Linux.
Installer Postman Agent:
Kjør følgende kommando fra terminalen for å installere en postbudsagent på Ubuntu.
$ sudo snap installere postbudÅpne programmet etter installasjonen. Følgende grensesnitt vises etter at postmannens nye vindu er åpnet.
API for testregister:
Klikk på lage en forespørsel lenke for å åpne forespørselsvinduet. Laravel utviklingsserver kjører i havn 8000 som standard brukes her. Hvis du bruker en annen port, må du endre portnummeret i URL-en. POST-metoden velges fra rullegardinmenyen, og følgende URL brukes til å sende en API-forespørsel om register-API.
http: // localhost: 8000 / api / register
Tre felt er definert som obligatoriske felt for brukere tabellen for å opprette en ny bruker. Disse er Navn, e-post, og passord. Sett tre nøkler og verdier for disse feltene vist nedenfor, og klikk på sende knapp. De registrere() Metode av ApiController vil bli kalt i henhold til ruten hvis forespørselen sendes riktig.
Følgende svar vises hvis den nye brukerposten er satt inn vellykket i brukere bord. Svarskoden, 200 indikerer at HTTP-forespørselen var vellykket og at et token genereres etter å ha satt inn den nye brukeren som vises i svaret i JSON-format.
Test påloggings-API:
Velg POST metode som Registrer API som er vist før. Angi følgende URL i adressefeltet for å sende en API-forespørsel om påloggings-API.
http: // localhost: 8000 / api / pålogging
To felt er obligatoriske for å autentisere enhver bruker basert på postene til brukere bord. Disse er e-post og passord. Sett to nøkler og verdier for disse feltene vist nedenfor, og klikk på sende knapp. De Logg Inn() Metode av ApiController vil bli kalt i henhold til ruten hvis forespørselen sendes riktig.
Følgende svar vises hvis brukeren er godkjent med suksess basert på postene til brukere bord. Svarskoden, 200 indikerer at HTTP-forespørselen var vellykket. Tokenverdien genereres etter autentisering av brukeren og returnerer svarteksten i JSON-format.
Du får følgende svarorgan når feil legitimasjon er gitt for å autentisere brukeren. 401 her genereres feilkode for å indikere uautorisert tilgang.
Test brukerinformasjons-API:
Noen headerparametere kreves for å konfigurere før du sender forespørselen om Detaljer API. Klikk på topptekster kategorien i forespørselsseksjonen og legg til tre overskriftsverdier for å identifisere den godkjente brukeren. Tokenverdien kopieres fra responsorganet og settes til autorisasjonsverdien.
Godta: applikasjon / jsonInnholdstype: applikasjon / json
Autorisasjon:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwianRpIjoiNDU3OWUwNmEwZ
jE3ZWNmYThOTkxNDJkMmQwZDQxYzU4MGFiMDM3OTc4NTIwYzA4NTJjZTk2MWU4NGFkYjE3ODU
wMzc3OTIwMzk3OWVmNTkiLCJpYXQiOjE1OTkyNzk3MTYsIm5iZiI6MTU5OTI3OTcxNiwiZXhwI
joxNjMwODE1NzE2LCJzdWIiOiI1Iiwic2NvcGVzIjpbXX0.fJYvzFsiD4WKcklpZ2-
w64UVOOk1DqMo_KbLCI7C00xQKhuQupVkgRULUx3e2mJIoJ8ET0MLngpUIFFS8Aet7W8KoQCcL
SzMKUjot4fhONQ5Dyzmb4csAIXFVoKK8YRm4gPCq-b1OW5e9K5gcrLKmqnt9a6nywoGHkXqq4GE
qHnHFgPnOkMfjbtGuKIj3aMtA2i7qHcbWdIt5O970LdM1ehW-AuMESZflJdjfN6zkHK4Kc93-
vLpZbgEKh1XD0p1fJEWyms590oIPERuWVS1hfCkpsnIFYRoB04TYTYPHdL25qwBW0m0VaTQG9fH
7xgiJFSkyS-FGmmUc7lglM8JUeVYmZfv-o5XVRlQ2EOCjLHSOFvKkuFzw-j3YfKaHBWY3Oo4gRD4
foWV2tGvDnF1zR_b11BDfDgv3rrl8mZNHx9DHjaFqUbWEdsnZbWouOR9wy
Vh0GI1fcIkWoWSM_BoNaTFittr9zqjkIWrQtKS3kVqsnCF8nIKXLp2dGaXdd8mWYWoq34NLYHhp
0u2TRy_BFFe3y_icgQVLBHcmEwdiXJISM8l9ctlodgRqA3wAQP11fV8cJfAIP2mfz3uUVY6nDqAr
kv6zRQ9oE4NCsqVvXeVp7RWOfakpu7EcQnwVDoq4hZ5j9tWx8bZ5eybMgHvRXkQKheie2j6Gzt0-rBUrFM
Overskriftsdelen av forespørselsdelen vil se ut som følgende bilde. Du må angi tokenverdien som genereres i postenes agent.
Klikk deretter på Autorisasjon kategorien i forespørselsseksjonen og velg Bærertoken som autorisasjonstype fra Type fall ned.
Velg nå POST metoden, angi følgende URL i adresselinjen. Det vil kalle brukerinformasjon() Metode av ApiController som vil hente detaljert informasjon om den autentiserte brukeren.
http: // localhost: 8000 / api / detaljerHvis tokenverdien og topptekstinformasjonen er gitt riktig, vil detaljene til den brukeren bli returnert som et svarorgan i JSON-format, som følgende bilde.
Videoopplæring
Konklusjon:
Passautentisering bruker nå på mange Laravel-nettsteder for sine nyttige funksjoner. Det gjør Laravel-autentiseringssystemet sikrere enn standardautentiseringen og gir andre tjenester som ikke er tilgjengelige i standardautentisering. De grunnleggende bruken av Laravel pass med installasjons- og konfigurasjonsprosessen er beskrevet i denne veiledningen. Bruk av postbudsmannen vises også her for å teste API. Jeg håper leseren vil forstå funksjonene til passpakken etter å ha lest denne veiledningen.