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.
- Passgodkendelse er bedre end Laravel-standardgodkendelse, fordi den også kan bruges til det eksterne websted.
- Normal API-godkendelse kan kun bruges til at få adgang til indholdet på Laravel-webstedet, hvor det er implementeret. Men det eksterne websted kan få adgang til indholdet af Laravel-webstedet med tilladelse fra den godkendte bruger og token.
Forudsætninger:
Du skal udføre følgende opgave, før du installerer og bruger Laravel Passport til brugergodkendelse.
- Installer et nyt Laravel-projekt
- Opsæt databaseforbindelse
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 / pasDu 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 migrererKør følgende kommando for at installere paspakken til projektet.
$ php håndværkerpas: installerDu 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 ApiControllerI 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 servererTest 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 / jsonIndholdstype: 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 / detaljerHvis 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.