laravel

Laravel passveiledning

Laravel passveiledning
Flere autentiseringsfunksjoner er implementert i Laravel versjon 5.2. Ulike autentiseringssystemer kreves for å implementere forskjellige ruter som var tidkrevende og ineffektive. Det samme autentiseringssystemet kan brukes til Internett og API ved å bruke en tokenbasert autentiseringsfunksjon. Men dette autentiseringssystemet er ikke sikrere for applikasjonen. Nå kan autentiseringssystemet til Laravel-applikasjonen sikres ved hjelp av det nye Pass autentiseringsfunksjon av Laravel. Den bruker to ENV som er hemmelighetene til Laravel pass OAUTH API. Dette er API_CLIENT_ID og API_CLIENT_SECRET. Et tilgangstoken genereres for hver bruker når Laravel-pass brukes, og det gir brukeren tilgang til noen sikre sluttpunkter. Hvordan du kan bygge et sikkert API-autentiseringssystem ved hjelp av Laravel pass og få tilgang til autorisert innhold, vises i denne veiledningen.

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.

Forutsetninger:

Du må gjøre følgende før du installerer og bruker Laravel Passport for brukerautentisering.

Installer Laravel Passport:

Kjør følgende kommando fra terminalen for å installere Laravel Passport-pakken ved hjelp av komponisten.

$ komponist krever laravel / pass

Du 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 migrerer

Kjør følgende kommando for å installere passpakken for prosjektet.

$ php håndverkspass: installer

Du 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 ApiController

I 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 serverer

Test 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 / json
Innholdstype: 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 / detaljer

Hvis 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.

Åpne kildeporter for kommersielle spillmotorer
Gratis, åpen kildekode og plattformspillmotorrekreasjoner kan brukes til å spille gamle så vel som noen av de ganske nylige spilletitlene. Denne artik...
Beste kommandolinjespill for Linux
Kommandolinjen er ikke bare din største allierte når du bruker Linux, den kan også være kilden til underholdning fordi du kan bruke den til å spille m...
Beste Gamepad Mapping Apps for Linux
Hvis du liker å spille spill på Linux med en gamepad i stedet for et vanlig tastatur- og musinngangssystem, er det noen nyttige apper for deg. Mange P...