laravel

Laravel pas-vejledning

Laravel pas-vejledning
Flere godkendelsesfunktioner er implementeret i Laravel version 5.2. Forskellige godkendelsessystemer er nødvendige for at implementere forskellige ruter, der var tidskrævende og ineffektive. Det samme godkendelsessystem kan bruges til Internettet og API ved hjælp af en tokenbaseret godkendelsesfunktion. Men dette godkendelsessystem er ikke mere sikkert for applikationen. Nu kan autentificeringssystemet for Laravel-applikationen sikres ved hjælp af det nye Pas godkendelsesfunktion af Laravel. Det bruger to ENV, som er hemmelighederne i Laravel pas OAUTH API. Disse er API_CLIENT_ID & API_CLIENT_SECRET. Et adgangstoken genereres for hver bruger, når Laravel-pas bruges, og det giver brugeren adgang til nogle sikre slutpunkter. Hvordan du kan opbygge et sikkert API-godkendelsessystem ved hjælp af Laravel-pas og få adgang til autoriseret indhold, vises i denne vejledning.

Fordele ved at bruge Laravel Pass:

OAUTH2-protokollen kan integreres med Laravel-applikationen ved hjælp af Laravel-adgangskoden. Når brugeren ønsker at hente eller indsætte data fra applikationen, sendes adgangsanmodningen af ​​denne protokol. Tilladelsen gives til brugeren ved at autorisere brugeren til adgang. Nogle vigtige fordele ved pasgodkendelse er nævnt nedenfor.

Forudsætninger:

Du skal udføre følgende opgave, før du installerer og bruger Laravel Passport til brugergodkendelse.

Installer Laravel Pas:

Kør følgende kommando fra terminalen for at installere Laravel Passport-pakken ved hjælp af komponisten.

$ komponist kræver laravel / pas

Du skal oprette brugere tabellen i databasen, før paspakken installeres. Tre migreringsfiler og en Bruger model er genereret automatisk, når et nyt Laravel-projekt oprettes. En af dem bruges til at oprette en brugere bord. Gå til Laravel-projektmappen, og kør følgende migreringskommando for at oprette brugere bord.

$ php håndværker migrerer

Kør følgende kommando for at installere paspakken til projektet.

$ php håndværkerpas: installer

Du får følgende oplysninger efter installation af Laravel-pas med succes i dit projekt. Her genereres to hemmelige nøgler. En til personlig adgangsklient og en til adgangskode tildele klient.

Laravel paskonfiguration:

Åbn Bruger model, der er placeret på placeringen, App \ model.php fra en redaktør, og rediger modellen som nedenfor. Tilføje Laravel \ Pas \ HasApiTokens i begyndelsen af ​​klassen og brug HasApiTokens og Notifiable inden for klassen.

navneområde-app;
brug Illuminate \ Contracts \ Auth \ MustVerifyEmail;
brug Illuminate \ Foundation \ Auth \ User som autentificerbar;
brug Illuminate \ Notifications \ Notifiable;
// Tilføjet her
brug Laravel \ Passport \ HasApiTokens;
klasse Bruger udvider Authenticatable

// Ændret her
brug HasApiTokens, anmeldelsespligtig;
/ **
* De attributter, der kan tildeles masse.
*
* @var matrix
* /
beskyttet $ fyldbar = [
'navn', 'e-mail', 'adgangskode',
];
/ **
* De attributter, der skal skjules for arrays.
*
* @var matrix
* /
beskyttet $ skjult = [
'adgangskode', 'remember_token',
];
/ **
* De attributter, der skal kastes til native typer.
*
* @var matrix
* /
beskyttede $ kaster = [
'email_verified_at' => 'datetid',
];

Åbn derefter app / Udbydere / AuthServiceProvider.php at registrere de ruter, der er nødvendige for at udstede og tilbagekalde adgangstokener. Passport :: routes-metoden kaldes inden for boot-metoden til AuthServiceProvider. Rediger indholdet af filen vist nedenfor.

navneområde App \ Udbydere;
brug Illuminate \ Foundation \ Support \ Providers \ AuthServiceProvider som ServiceProvider;
brug Illuminate \ Support \ Facades \ Gate;
// pas tilføjes her
brug Laravel \ Passport \ Passport;
klasse AuthServiceProvider udvider ServiceProvider

/ ** Politiktilknytningerne til applikationen.
*
* @var matrix
* /
beskyttede $ politikker = [
'App \ Model' => 'App \ Politikker \ ModelPolicy',
];
/ **
* Registrer eventuelle godkendelses- / autorisationstjenester.
*
* @ tilbagevenden ugyldig
* /
offentlig funktionsstart ()

$ dette-> registerPolicies ();
Pas :: ruter ();
Pas :: tokensExpireIn (nu () -> addDays (15));
Pas :: refreshTokensExpireIn (nu () -> addDays (30));

Åbn derefter config \ app.php og indsæt følgende linje i udbydere array for at inkludere den nødvendige klasse til brug af Laravel pas.

Laravel \ Passport \ PassportServiceProvider :: klasse,

Åbn derefter config \ auth.php og indstil driveren til API til pas i vagter array vist nedenfor.

'vagter' => [
'web' => [
'driver' => 'session',
'provider' => 'brugere',
],
'api' => [
'driver' => 'pas',
'provider' => 'brugere',
'hash' => falsk,
],
],

Implementeringscontroller til registrering og godkendelse:

Du skal oprette en controller til implementering af godkendelsessystemet ved hjælp af paspakken. Kør følgende kommando fra projektets rodmappe for at oprette ApiController.

$ php håndværkerfabrik: controller ApiController

I den næste del af denne vejledning tilføjes tre metoder inde i ApiController for at oprette en ny bruger, godkende en bruger og få detaljerede oplysninger om en godkendt bruger.

EN. Tilmeld

En ny bruger kan oprettes i brugere tabel ved at implementere en Tilmeld() metode. Tilføj følgende kode inde i ApiController at implementere register API. De nødvendige feltværdier til oprettelse af en ny bruger hentes af argumentet, $ anmodning af metoden Tilmeld(). Validator klasse bruges til at kontrollere feltværdierne er gyldige eller ikke baseret på de definerede valideringsregler. Hvis den mislykkes () metode returnerer sand, så returnerer den en fejlmeddelelse i JSON-format. Hvis den mislykkes () metoden returnerer falsk, så genereres en hash-adgangskode, og nye brugeroplysninger indsættes i brugertabellen. Et token genereres efter oprettelse af den nye bruger, og en succesmeddelelse med tokenværdi returneres.

offentligt funktionsregister (Anmod $ anmodning)

/ ** Valider dataene ved hjælp af valideringsregler
* /
$ validator = Validator :: make ($ request-> all (), [
'name' => 'krævet',
'email' => 'påkrævet | e-mail',
'password' => 'krævet',
]);
/ ** Kontroller, at valideringen mislykkes eller ej
* /
hvis ($ validator-> mislykkes ())
/ ** Returner fejlmeddelelse
* /
returneresvar () -> json (['error' => $ validator-> fejl ()]);

/ ** Gem alle værdier i felterne
* /
$ newuser = $ anmodning-> alle ();
/ ** Opret en krypteret adgangskode ved hjælp af hash
* /
$ newuser ['password'] = Hash :: make ($ newuser ['password']);
/ ** Indsæt en ny bruger i tabellen
* /
$ bruger = Bruger :: Opret ($ newuser);
/ ** Opret et adgangstoken til brugeren
* /
$ success ['token'] = $ user-> createToken ('AppName') -> accessToken;
/ ** Returner succesmeddelelse med tokenværdi
* /
return return () -> json (['success' => $ success], 200);

B. Log på:

Enhver bruger kan godkendes ved implementering login () metode. Tilføj følgende kode indeni ApiController at implementere et login-API. De krævede felter for at godkende en bruger hentes fra $ anmodning af login () metode. forsøg() metode vil kontrollere værdierne af e-mail og adgangskode til godkendelse. Hvis værdierne matcher værdierne for brugere i tabellen, hentes posten for den pågældende bruger, og en tokenværdi returneres. Hvis godkendelsen mislykkes, så an Uberettiget besked returneres.

login til offentlig funktion (Anmod $ anmodning)

/ ** Læs legitimationsoplysninger, der er givet af brugeren
* /
$ legitimationsoplysninger = [
'e-mail' => $ anmodning-> e-mail,
'password' => $ anmodning-> password
];
/ ** Kontroller, at legitimationsoplysningerne er gyldige eller ej
* /
hvis (auth () -> forsøg ($ legitimationsoplysninger))
/ ** Gem oplysningerne fra den godkendte bruger
* /
$ bruger = Auth :: bruger ();
/ ** Opret token til den godkendte bruger
* /
$ success ['token'] = $ user-> createToken ('AppName') -> accessToken;
return return () -> json (['success' => $ success], 200);
andet
/ ** Returner fejlmeddelelse
* /
retur svar () -> json (['error' => 'Uautoriseret'], 401);

C. Brugerdetalje

Du kan få de detaljerede oplysninger om enhver bruger efter godkendelse ved at implementere User API. Tilføj følgende kode i ApiController for at hente detaljerede oplysninger om enhver godkendt bruger.

offentlig funktion user_info ()

/ ** Hent oplysningerne fra den godkendte bruger
* /
$ bruger = Auth :: bruger ();
/ ** Returner brugerens oplysninger
* /
return return () -> json (['success' => $ user], 200);

API-rute til controlleren:

Åbn ruter \ app.php fil og rediger indholdet med følgende koder for at definere login-ruten, registrere rute og detaljeret rute for API-tjenester.

/ ** Rute til login API * /
Rute :: post ('login', '[email protected]');
/ ** Rute til register API * /
Rute :: post ('register', '[email protected]');
/ ** Rute for detaljer bruger API * /
Rute :: middleware ('auth: api') -> gruppe (funktion ()
Rute :: post ('detaljer', '[e-mail-beskyttet] _info');
);

Kør følgende kommando for at starte Laravel-udviklingsserveren.

$ php håndværker serverer

Test API-godkendelse ved hjælp af postbud:

Postbrevet er et meget nyttigt værktøj til at teste RESTful API'er. HTTP-anmodningen kan genereres meget let for at teste API-funktionaliteter ved hjælp af brugergrænsefladen til denne applikation uden at skrive en stor mængde kode for at sende anmodninger. Postbud kan håndtere forskellige HTTP-anmodninger og hjælpeprogrammer til at udvikle API'er. Det har både betalte og gratis versioner til Linux.

Installer Postman Agent:

Kør følgende kommando fra terminalen for at installere en postbudsagent på Ubuntu.

$ sudo snap installere postbud

Åbn applikationen efter installationen. Følgende grænseflade vises efter åbning af postbudets nye vindue.

API til testregister:

Klik på Opret en anmodning link for at åbne anmodningsvinduet. Laravel-udviklingsserver kører i havn 8000 som standard bruges der. Hvis du bruger en anden port, skal du ændre portnummeret i din URL. POST-metoden vælges fra rullemenuen, og den følgende URL bruges til at sende en API-anmodning om register-API.

http: // localhost: 8000 / api / register

Tre felter er defineret som obligatoriske felter for brugere tabel for at oprette en ny bruger. Disse er navn, e-mail, og adgangskode. Indstil tre nøgler og værdier for disse felter vist nedenfor, og klik på sende knap. Det Tilmeld() metode til ApiController kaldes i henhold til ruten, hvis anmodningen sendes korrekt.

Følgende svar vises, hvis den nye brugerpost indsættes med succes i brugere bord. Svarskoden, 200 angiver, at HTTP-anmodningen var vellykket, og at der genereres et token efter indsættelse af den nye bruger, der vises i svarteksten i JSON-format.

Test login API:

Vælg STOLPE metode som Registrer API der er vist før. Indstil følgende URL i adresselinjen for at sende en API-anmodning om Login API.

http: // localhost: 8000 / api / login

To felter er obligatoriske til at godkende enhver bruger baseret på registreringer af brugere bord. Disse er e-mail og adgangskode. Indstil to nøgler og værdier for disse felter vist nedenfor, og klik på sende knap. Det Log på() metode til ApiController kaldes i henhold til ruten, hvis anmodningen sendes korrekt.

Følgende svar vises, hvis brugeren er godkendt med succes baseret på posterne i brugere bord. Svarskoden, 200 angiver, at HTTP-anmodningen blev gennemført. Tokenværdien genereres efter godkendelse af brugeren og returnerer svarteksten i JSON-format.

Du får følgende svartekst, når der gives de forkerte legitimationsoplysninger til godkendelse af brugeren. 401 her genereres fejlkode for at angive uautoriseret adgang.

Test brugeroplysninger API:

Nogle headerparametre er nødvendige for at opsætte, inden anmodningen om detaljer API sendes. Klik på overskrifter fanen i anmodningssektionen, og tilføj tre overskriftsværdier for at identificere den godkendte bruger. Tokenværdien kopieres fra responsorganet og indstilles til autorisationsværdien.

Accepter: applikation / json
Indholdstype: applikation / json
Bemyndigelse:
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

Overskriftssektionen i anmodningsdelen vil se ud som det følgende billede. Du er nødt til at indstille din tokenværdi, der genereres i din postbedsagents svartekst.

Klik derefter på Bemyndigelse fanen i anmodningssektionen, og vælg Bærertoken som godkendelsestype fra Type drop-down.

Vælg nu STOLPE metode, skal du indstille følgende URL i adresselinjen. Det vil kalde user_info () metode til ApiController der henter detaljerede oplysninger om den godkendte bruger.

http: // localhost: 8000 / api / detaljer

Hvis tokenværdien og headeroplysningerne leveres korrekt, returneres oplysningerne om den bruger som et svarorgan i JSON-format som det følgende billede.

Video tutorial

Konklusion:

Passautentificering bruger nu på mange Laravel-websteder for sine nyttige funktioner. Det gør Laravel-godkendelsessystemet mere sikkert end standardgodkendelse og leverer andre tjenester, der ikke er tilgængelige i standardgodkendelse. De grundlæggende anvendelser af Laravel pas med installations- og konfigurationsprocessen er beskrevet i denne vejledning korrekt. Brugen af ​​postbudsmanden vises også her for at teste API'et. Jeg håber, at læseren forstår funktionerne i paspakken efter at have læst denne vejledning.

SuperTuxKart til Linux
SuperTuxKart er en fantastisk titel designet til at give dig Mario Kart-oplevelsen gratis på dit Linux-system. Det er ret udfordrende og sjovt at spil...
Kæmp om Wesnoth-vejledning
Slaget om Wesnoth er et af de mest populære open source-strategispil, som du kan spille på dette tidspunkt. Ikke kun har dette spil været under udvikl...
0 A.D. Vejledning
Ud af de mange strategispil derude, 0 A.D. formår at skille sig ud som en omfattende titel og et meget dybt, taktisk spil på trods af at det er open s...