laravel

Laravel Pass Tutorial

Laravel Pass Tutorial
Flera autentiseringsfunktioner implementeras i Laravel version 5.2. Olika autentiseringssystem krävs för att implementera olika rutter som var tidskrävande och ineffektiva. Samma autentiseringssystem kan användas för webb och API med hjälp av en tokenbaserad autentiseringsfunktion. Men detta autentiseringssystem är inte säkrare för applikationen. Nu kan autentiseringssystemet för Laravel-applikationen säkras med hjälp av det nya Pass autentiseringsfunktion hos Laravel. Den använder två ENV som är hemligheterna i Laravel pass OAUTH API. Dessa är API_CLIENT_ID & API_CLIENT_SECRET. En åtkomsttoken genereras för varje användare när Laravel-pass används och det tillåter användaren att komma åt vissa säkra slutpunkter. Hur du kan bygga ett säkert API-autentiseringssystem med hjälp av Laravel pass och få åtkomst till auktoriserat innehåll visas i denna handledning.

Fördelar med att använda Laravel Pass:

OAUTH2-protokollet kan integreras med Laravel-applikationen med hjälp av Laravel-lösenordet. När användaren vill hämta eller infoga data från applikationen kommer åtkomstbegäran att skickas av detta protokoll. Behörigheten kommer att ges till användaren genom att bemyndiga användaren för åtkomst. Några viktiga fördelar med passautentisering nämns nedan.

Förutsättningar:

Du måste göra följande innan du installerar och använder Laravel Passport för användarautentisering.

Installera Laravel Passport:

Kör följande kommando från terminalen för att installera Laravel Passport-paketet med kompositören.

$ kompositör kräver laravel / pass

Du måste skapa användare tabellen i databasen innan du installerar passpaketet. Tre migreringsfiler och en Användare har genererats automatiskt när ett nytt Laravel-projekt skapas. En av dem används för att skapa en användare tabell. Gå till Laravel-projektmappen och kör följande migreringskommando för att skapa användare tabell.

$ php hantverkare migrerar

Kör följande kommando för att installera passpaketet för projektet.

$ php hantverkspass: installera

Du får följande information efter att du har installerat Laravel-pass i ditt projekt. Här genereras två hemliga nycklar. En för personlig åtkomstklient och en annan för lösenordstilldelningsklient.

Laravel Pass Configuration:

Öppna Användare modell som finns på platsen, App \ modell.php från en redaktör och modifiera modellen som nedan. Lägg till Laravel \ Passport \ HasApiTokens i början av klassen och använd HasApiTokens och Notifiable inuti klassen.

namnrymd-app;
använd Illuminate \ Contracts \ Auth \ MustVerifyEmail;
använd Illuminate \ Foundation \ Auth \ User som autentiserbar;
använda Illuminate \ Notifications \ Notifiable;
// Tillagd här
använd Laravel \ Passport \ HasApiTokens;
klass Användare utökar Authenticatable

// Modifierad här
använda HasApiTokens, anmälningspliktig;
/ **
* Attributen som kan tilldelas i massa.
*
* @var array
* /
skyddad $ fyllbar = [
'namn', 'e-post', 'lösenord',
];
/ **
* De attribut som ska döljas för matriser.
*
* @var array
* /
skyddad $ dold = [
'lösenord', 'remember_token',
];
/ **
* Attributen som ska kastas till inhemska typer.
*
* @var array
* /
skyddade $ casts = [
'email_verified_at' => 'datetid',
];

Öppna sedan app / Providers / AuthServiceProvider.php för att registrera de rutter som är nödvändiga för att utfärda och återkalla åtkomsttoken. Passport :: routes-metoden kallas inom startmetoden för AuthServiceProvider. Ändra innehållet i filen som visas nedan.

namnutrymme App \ Providers;
använd Illuminate \ Foundation \ Support \ Providers \ AuthServiceProvider som ServiceProvider;
använd Illuminate \ Support \ Facades \ Gate;
// pass läggs till här
använd Laravel \ Passport \ Passport;
klass AuthServiceProvider utökar ServiceProvider

/ ** Policymappningarna för applikationen.
*
* @var array
* /
skyddade $ policies = [
'App \ Model' => 'App \ Policies \ ModelPolicy',
];
/ **
* Registrera alla autentiserings- / auktoriseringstjänster.
*
* @return ogiltig
* /
offentlig funktionsstart ()

$ detta-> registerPolicies ();
Pass :: rutter ();
Pass :: tokensExpireIn (nu () -> addDays (15));
Pass :: refreshTokensExpireIn (nu () -> addDays (30));

Öppna sedan config \ app.php och infoga följande rad i leverantörer array för att inkludera den klass som krävs för att använda Laravel pass.

Laravel \ Passport \ PassportServiceProvider :: klass,

Öppna sedan config \ auth.php och ställ in drivrutinen för API till pass i vakter array som visas nedan.

'vakter' => [
'web' => [
'driver' => 'session',
'provider' => 'användare',
],
'api' => [
'driver' => 'pass',
'provider' => 'användare',
'hash' => falskt,
],
],

Implementkontroll för registrering och autentisering:

Du måste skapa en styrenhet för att implementera autentiseringssystemet med passpaketet. Kör följande kommando från projektets rotmapp för att skapa ApiController.

$ php artisan make: controller ApiController

I nästa del av denna handledning läggs tre metoder in i ApiController för att skapa en ny användare, autentisera en användare och få detaljerad information om en autentiserad användare.

A. Registrera

En ny användare kan skapas i användare genom att genomföra en Registrera() metod. Lägg till följande kod inuti ApiController för att implementera register-API. De nödvändiga fältvärdena för att skapa en ny användare hämtas av argumentet, $ begäran av metoden Registrera(). Validator klass används för att kontrollera att fältvärdena är giltiga eller inte baserade på de definierade valideringsreglerna. Om den misslyckas () metoden returnerar true så returnerar den ett felmeddelande i JSON-format. Om den misslyckas () metoden returnerar falskt då genereras ett hash-lösenord och ny användarinformation infogas i användartabellen. En token genereras efter att den nya användaren har skapats och ett framgångsmeddelande med tokenvärde kommer att returneras.

offentligt funktionsregister (Begär $ begäran)

/ ** Validera uppgifterna med valideringsregler
* /
$ validator = Validator :: make ($ request-> all (), [
'name' => 'krävs',
'email' => 'krävs | e-post',
'password' => 'krävs',
]);
/ ** Kontrollera att valideringen misslyckas eller inte
* /
om ($ validator-> misslyckas ())
/ ** Returnera felmeddelande
* /
retursvar () -> json (['error' => $ validator-> fel ()]);

/ ** Lagra alla värden i fälten
* /
$ newuser = $ request-> all ();
/ ** Skapa ett krypterat lösenord med hashen
* /
$ newuser ['password'] = Hash :: make ($ newuser ['password']);
/ ** Infoga en ny användare i tabellen
* /
$ user = User :: create ($ newuser);
/ ** Skapa en åtkomsttoken för användaren
* /
$ success ['token'] = $ user-> createToken ('AppName') -> accessToken;
/ ** Returnera framgångsmeddelande med tokenvärde
* /
return response () -> json (['success' => $ success], 200);

B. Logga in:

Alla användare kan autentiseras genom att implementera inloggningen () metod. Lägg till följande kod inuti ApiController för att implementera ett inloggnings-API. De obligatoriska fälten för att autentisera en användare hämtas från $ begäran av inloggningen () metod. försök() metoden kommer att kontrollera värdena för e-post och Lösenord för autentisering. Om värdena matchar värdena för användare i tabellen hämtas posten för den specifika användaren och ett tokenvärde returneras. Om autentiseringen misslyckas, an Obehörig meddelandet kommer att returneras.

inloggning för offentlig funktion (Begär $ begäran)

/ ** Läs användaruppgifterna
* /
$ referenser = [
'e-post' => $ begäran-> e-post,
'lösenord' => $ begäran-> lösenord
];
/ ** Kontrollera att uppgifterna är giltiga eller inte
* /
om (auth () -> försök ($ referenser))
/ ** Lagra informationen om autentiserad användare
* /
$ user = Auth :: user ();
/ ** Skapa token för den autentiserade användaren
* /
$ success ['token'] = $ user-> createToken ('AppName') -> accessToken;
return response () -> json (['success' => $ success], 200);
annat
/ ** Returnera felmeddelande
* /
retursvar () -> json (['error' => 'Obehörig'], 401);

C. Användardetaljer

Du kan få detaljerad information om alla användare efter autentisering genom att implementera User API. Lägg till följande kod i ApiController för att hämta detaljerad information om alla autentiserade användare.

offentlig funktion user_info ()

/ ** Hämta informationen från den autentiserade användaren
* /
$ user = Auth :: user ();
/ ** Returnera användarens uppgifter
* /
retursvar () -> json (['success' => $ user], 200);

API-rutt för styrenheten:

Öppna rutter \ app.php fil och modifiera innehållet med följande koder för att definiera inloggningsvägen, registrera rutt och detaljerad rutt för API-tjänster.

/ ** Rutt för inloggnings-API * /
Rutt :: post ('login', '[email protected]');
/ ** Rutt för register-API * /
Rutt :: post ('register', '[email protected]');
/ ** Rutt för detaljer användar-API * /
Rutt :: middleware ('auth: api') -> group (function ()
Rutt :: post ('information', '[email protected] _info');
);

Kör följande kommando för att starta Laravel-utvecklingsservern.

$ php hantverkare serverar

Testa API-autentisering med postman:

Postman är ett mycket användbart verktyg för att testa RESTful API. HTTP-förfrågan kan genereras mycket enkelt för att testa API-funktioner genom att använda användargränssnittet för denna applikation utan att skriva en stor mängd kod för att skicka förfrågningar. Postman kan hantera olika HTTP-förfrågningar och verktyg för att utveckla API: er. Den har både betalda och gratisversioner för Linux.

Installera Postman Agent:

Kör följande kommando från terminalen för att installera en postman agent på Ubuntu.

$ sudo snap install postman

Öppna programmet efter installationen. Följande gränssnitt visas efter att brevbärarens nya fönster har öppnats.

API för testregister:

Klicka på skapa en begäran länk för att öppna förfrågningsfönstret. Laravel-utvecklingsserver körs vid port 8000 som standard används här. Om du använder en annan port måste du ändra portnumret i din URL. POST-metoden väljs från listrutan och följande URL används för att skicka en API-begäran om register-API.

http: // localhost: 8000 / api / register

Tre fält definieras som obligatoriska fält för användare för att skapa en ny användare. Dessa är namn, e-post, och Lösenord. Ställ in tre nycklar och värden för dessa fält som visas nedan och klicka på skicka knapp. De Registrera() metod av ApiController kommer att anropas enligt rutten om begäran skickas korrekt.

Följande svar kommer att visas om den nya användarposten införs framgångsrikt i användare tabell. Svarskoden, 200 indikerar att HTTP-begäran lyckades och en token genereras efter infogning av den nya användaren som visas i svarsdelen i JSON-format.

API för testinloggning:

Välj POSTA metod som Registrera API som visas tidigare. Ställ in följande URL i adressfältet för att skicka en API-begäran om inloggnings-API.

http: // localhost: 8000 / api / login

Två fält är obligatoriska för att autentisera alla användare baserat på posterna för användare tabell. Dessa är e-post och Lösenord. Ställ in två nycklar och värden för dessa fält som visas nedan och klicka på skicka knapp. De logga in() metod av ApiController kommer att anropas enligt rutten om begäran skickas korrekt.

Följande svar visas om användaren har autentiserats framgångsrikt baserat på posterna för användare tabell. Svarskoden, 200 indikerar att HTTP-begäran lyckades. Tokenvärdet genereras efter autentisering av användaren och returnerar svarstypen i JSON-format.

Du får följande svarstyp när fel autentiseringsuppgifter tillhandahålls för att autentisera användaren. 401 felkod genereras här för att indikera obehörig åtkomst.

Testa användarinformation API:

Vissa huvudparametrar krävs för att konfigurera innan du skickar begäran om Detaljer API. Klicka på rubriker fliken i begärandeavdelningen och lägg till tre huvudvärden för att identifiera den autentiserade användaren. Tokenvärdet kopieras från svarskroppen och ställs in för auktoriseringsvärdet.

Acceptera: application / json
Innehållstyp: applikation / json
Tillstånd:
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

Rubrikerna i begärandelen kommer att se ut som följande bild. Du måste ställa in ditt tokenvärde som genereras i svarsdelen för din brevbäraragent.

Klicka sedan på Tillstånd fliken i begäran och välj Bärartoken som behörighetstyp från Typ falla ner.

Välj nu POSTA metod, ange följande URL i adressfältet. Det kommer att ringa användarinformation() metod av ApiController som hämtar detaljerad information om den autentiserade användaren.

http: // localhost: 8000 / api / detaljer

Om tokenvärdet och rubrikinformationen tillhandahålls ordentligt kommer detaljerna för den användaren att returneras som en svarstyp i JSON-format som följande bild.

Videohandledning

Slutsats:

Passautentisering används nu på många Laravel-webbplatser för sina användbara funktioner. Det gör Laravel-autentiseringssystemet säkrare än standardautentiseringen och tillhandahåller andra tjänster som inte är tillgängliga i standardautentisering. De grundläggande användningarna av Laravel pass med installations- och konfigurationsprocessen beskrivs korrekt i denna handledning. Användningen av postmanagenten visas också här för att testa API: et. Jag hoppas att läsaren förstår funktionerna i passpaketet efter att ha läst denna handledning.

Topp 10 spel att spela på Ubuntu
Windows-plattformen har varit en av de dominerande plattformarna för spel på grund av den enorma andelen spel som utvecklas idag för att stödja Window...
5 bästa arkadspel för Linux
Numera är datorer seriösa maskiner som används för spel. Om du inte kan få den nya poängen vet du vad jag menar. I det här inlägget kommer du att känn...
Strid om Wesnoth 1.13.6 Utveckling släppt
Strid om Wesnoth 1.13.6 släpptes förra månaden, är den sjätte utvecklingsversionen i 1.13.x-serien och den levererar ett antal förbättringar, framför ...