laravel

Vodič za putovnice Laravel

Vodič za putovnice Laravel
Višestruke značajke provjere autentičnosti implementirane su u Laravel verziju 5.2. Različiti sustavi provjere autentičnosti potrebni su za provođenje različitih ruta koje su oduzimale vrijeme i bile neučinkovite. Isti sustav provjere autentičnosti može se koristiti za mreža i API pomoću značajke provjere autentičnosti na temelju tokena. Ali ovaj sustav provjere autentičnosti nije sigurniji za aplikaciju. Sada se sustav provjere autentičnosti aplikacije Laravel može osigurati upotrebom novog Putovnica značajka autentifikacije tvrtke Laravel. Koristi dva ENV koji su tajne API-ja OAUTH za putovnicu Laravel. To su API_CLIENT_ID i API_CLIENT_SECRET. Token za pristup generira se za svakog korisnika kada se koristi putovnica Laravel i omogućuje korisniku pristup nekim sigurnim krajnjim točkama. U ovom vodiču prikazano je kako možete izgraditi siguran sustav provjere autentičnosti pomoću putovnice Laravel i pristup ovlaštenom sadržaju.

Prednosti upotrebe putovnice Laravel:

OAUTH2 protokol može se integrirati s aplikacijom Laravel pomoću lozinke Laravel. Kada korisnik želi dohvatiti ili umetnuti podatke iz aplikacije, ovaj će se protokol poslati zahtjev za pristup. Dopuštenje će se dati korisniku ako se korisniku odobri pristup. U nastavku su spomenute neke od glavnih prednosti provjere autentičnosti putovnice.

Preduvjeti:

Prije instaliranja i korištenja Laravel Passport za autentifikaciju korisnika morate obaviti sljedeći zadatak.

Instalirajte putovnicu Laravel:

Izvršite sljedeću naredbu s terminala da biste instalirali paket Laravel Passport pomoću skladatelja.

$ composer zahtijeva laravel / putovnicu

Trebat ćete stvoriti korisnika tablicu u bazi podataka prije instaliranja paketa putovnica. Tri datoteke za migraciju i Korisnik modeli generirani su automatski kada kreira novi projekt Laravel. Jedan od njih koristi se za stvaranje a korisnika stol. Idite u mapu projekta Laravel i pokrenite sljedeću naredbu za migraciju da biste kreirali korisnika stol.

$ php obrtnik migrira

Izvedite sljedeću naredbu da biste instalirali paket putovnica za projekt.

$ php obrtnička putovnica: instalirajte

Nakon uspješne instalacije putovnice Laravel u svoj projekt dobit ćete sljedeće podatke. Ovdje se generiraju dva tajna ključa. Jedan za klijent za osobni pristup a druga za klijent za dodjelu lozinke.

Konfiguracija putovnice Laravel:

Otvori Korisnik model koji se nalazi na lokaciji, Aplikacija \ model.php iz uređivača i izmijenite model kao u nastavku. Dodati Laravel \ Passport \ HasApiTokens na početku predavanja i koristite HasApiTokens i Notificable unutar razreda.

App App;
koristiti Illuminate \ Contracts \ Auth \ MustVerifyEmail;
koristiti Illuminate \ Foundation \ Auth \ User kao autentifikacijskog;
koristite Illuminate \ Notifications \ Notifiable;
// Dodano ovdje
koristite Laravel \ Passport \ HasApiTokens;
klasa Korisnik proširuje Provjerivo

// Izmijenjeno ovdje
koristiti HasApiTokens, Obavijestiv;
/ **
* Atributi koji se mogu masovno dodijeliti.
*
* @var niz
* /
zaštićen $ fillable = [
'ime', 'e-adresa', 'lozinka',
];
/ **
* Atributi koji bi trebali biti skriveni za nizove.
*
* @var niz
* /
zaštićeno $ hidden = [
'lozinka', 'zapamti_token',
];
/ **
* Atributi koji se trebaju prebaciti na nativne tipove.
*
* @var niz
* /
zaštićen $ casts = [
'email_verified_at' => 'datum i vrijeme',
];

Dalje, otvori app / Providers / AuthServiceProvider.php za registraciju ruta potrebnih za izdavanje i opoziv pristupnih tokena. Metoda Passport :: routes poziva se unutar metode pokretanja sustava AuthServiceProvider. Izmijenite sadržaj datoteke prikazane u nastavku.

Prostor imena App \ Providers;
koristite Illuminate \ Foundation \ Support \ Providers \ AuthServiceProvider kao ServiceProvider;
koristite Illuminate \ Support \ Facades \ Gate;
// ovdje je dodana putovnica
koristite Laravel \ Passport \ Passport;
klasa AuthServiceProvider proširuje ServiceProvider

/ ** Mapiranje politike za aplikaciju.
*
* @var niz
* /
zaštićene $ politike = [
'App \ Model' => 'App \ Policies \ ModelPolicy',
];
/ **
* Registrirajte sve usluge provjere autentičnosti / autorizacije.
*
* @povratak prazan
* /
podizanje javne funkcije ()

$ this-> registerPolicies ();
Putovnica :: routes ();
Passport :: tokensExpireIn (now () -> addDays (15));
Passport :: refreshTokensExpireIn (now () -> addDays (30));

Dalje, otvori config \ app.php i umetnite sljedeći redak u davatelji usluga niz koji uključuje potrebnu klasu za upotrebu putovnice Laravel.

Laravel \ Passport \ PassportServiceProvider :: klasa,

Dalje, otvori config \ auth.php i postavite pokretački program API-ja na putovnica u stražari niz prikazan dolje.

'čuvari' => [
'web' => [
'driver' => 'sesija',
'provider' => 'korisnici',
],
'api' => [
'driver' => 'putovnica',
'provider' => 'korisnici',
'hash' => false,
],
],

Implementirajte kontroler za registraciju i autentifikaciju:

Morate stvoriti kontroler za implementaciju sustava provjere autentičnosti pomoću paketa putovnica. Pokrenite sljedeću naredbu iz korijenske mape projekta za stvaranje ApiController.

$ php artisan make: kontroler ApiController

U sljedećem dijelu ovog vodiča dodane su tri metode unutar ApiController za stvaranje novog korisnika, provjeru autentičnosti korisnika i dobivanje detaljnih informacija ovjerenog korisnika.

A. Registar

Novi korisnik može se stvoriti u korisnika tablica primjenom a Registar() metoda. Dodajte sljedeći kod u ApiController za implementaciju registra API-ja. Argumentom se dohvaćaju potrebne vrijednosti polja za stvaranje novog korisnika, $ zahtjev metode Registar(). Provjerivač klasa koristi se za provjeru jesu li vrijednosti polja valjane ili ne na temelju definiranih pravila provjere valjanosti. Ako je ne uspije () metoda vraća true, tada će vratiti poruku o pogrešci u JSON formatu. Ako je ne uspije () metoda vraća false, tada će se generirati hash lozinka i novi korisnički podaci bit će umetnuti u tablicu korisnika. Token će se generirati nakon stvaranja novog korisnika i vratit će se poruka o uspjehu s vrijednošću tokena.

registar javnih funkcija (zatražite $ zahtjev)

/ ** Potvrdite podatke pomoću pravila provjere valjanosti
* /
$ validator = Validator :: make ($ zahtjev-> sve (), [
'name' => 'potrebno',
'email' => 'obavezno | email',
'lozinka' => 'potrebna',
]);
/ ** Provjerite je li provjera valjanosti uspjela ili nije
* /
ako ($ validator-> ne uspije ())
/ ** Vrati poruku o pogrešci
* /
povratni odgovor () -> json (['pogreška' => $ validator-> greške ()]);

/ ** Spremite sve vrijednosti polja
* /
$ newuser = $ request-> all ();
/ ** Stvorite šifriranu lozinku pomoću hasha
* /
$ newuser ['password'] = Hash :: make ($ newuser ['lozinka']);
/ ** U tablicu umetnite novog korisnika
* /
$ user = Korisnik :: create ($ newuser);
/ ** Stvorite pristupni token za korisnika
* /
$ success ['token'] = $ user-> createToken ('AppName') -> accessToken;
/ ** Vrati poruku o uspjehu s vrijednošću tokena
* /
povratni odgovor () -> json (['uspjeh' => $ uspjeh], 200);

B. Prijaviti se:

Bilo koji korisnik može biti autentificiran implementacijom prijava () metoda. Dodajte sljedeći kod unutra ApiController za implementaciju API-ja za prijavu. Potrebna polja za autentifikaciju korisnika dohvaćaju se iz $ zahtjev od prijava () metoda. pokušaj() metoda provjerit će vrijednosti e-mail i zaporka za autentifikaciju. Ako se vrijednosti podudaraju s vrijednostima korisnika tablice, tada će se preuzeti zapis tog određenog korisnika i vratiti vrijednost tokena. Ako provjera autentičnosti ne uspije, tada se Neovlašteno poruka će biti vraćena.

prijava javne funkcije (zatraži $ zahtjev)

/ ** Pročitajte vjerodajnice koje je korisnik proslijedio
* /
$ vjerodajnice = [
'email' => $ request-> email,
'lozinka' => $ request-> lozinka
];
/ ** Provjerite jesu li vjerodajnice valjane ili ne
* /
if (auth () -> pokušaj ($ vjerodajnice))
/ ** Pohranite podatke ovjerenog korisnika
* /
$ user = Auth :: user ();
/ ** Stvori token za autentificiranog korisnika
* /
$ success ['token'] = $ user-> createToken ('AppName') -> accessToken;
povratni odgovor () -> json (['uspjeh' => $ uspjeh], 200);
ostalo
/ ** Vrati poruku o pogrešci
* /
povratni odgovor () -> json (['error' => 'Neovlašteno'], 401);

C. Pojedinosti o korisniku

Detaljne informacije o bilo kojem korisniku možete dobiti nakon provjere autentičnosti implementirajući User API. Dodajte sljedeći kod u ApiController za pristup detaljnim informacijama bilo kojeg ovjerenog korisnika.

javna funkcija user_info ()

/ ** Dohvatite podatke ovjerenog korisnika
* /
$ user = Auth :: user ();
/ ** Vrati podatke o korisniku
* /
povratni odgovor () -> json (['uspjeh' => $ korisnik], 200);

API ruta za kontroler:

Otvori rute \ app.php datoteku i izmijenite sadržaj sljedećim kodovima kako biste definirali put prijave, rutu registracije i detalje rute za API usluge.

/ ** Ruta za API za prijavu * /
Ruta :: post ('prijava', '[e-pošta zaštićena]');
/ ** Ruta za API registra * /
Ruta :: post ('registriraj se,' [zaštićen e-poštom] ');
/ ** Ruta za detalje korisnički API * /
Route :: middleware ('auth: api') -> group (function ()
Ruta :: post ('detalji', '[e-pošta zaštićena] _info');
);

Pokrenite sljedeću naredbu za pokretanje razvojnog poslužitelja Laravel.

$ php obrtničko posluživanje

Testirajte autentifikaciju API-ja pomoću poštara:

Poštar je vrlo koristan alat za testiranje RESTful API-ja. HTTP zahtjev može se generirati vrlo jednostavno za testiranje API funkcionalnosti korištenjem korisničkog sučelja ove aplikacije bez pisanja velike količine koda za slanje zahtjeva. Poštar može obrađivati ​​razne HTTP zahtjeve i uslužne programe za razvoj API-ja. Ima i plaćene i besplatne verzije za Linux.

Instalirajte agenta poštara:

Pokrenite sljedeću naredbu s terminala da biste instalirali poštarskog agenta na Ubuntu.

$ sudo snap instaliraj poštara

Otvorite aplikaciju nakon instalacije. Sljedeće sučelje pojavit će se nakon otvaranja novog prozora poštara.

API registra za testiranje:

Klikni na stvoriti zahtjev vezu za otvaranje prozora zahtjeva. Laravel razvojni poslužitelj radi u luci 8000 po defaultu koji se ovdje koristi. Ako upotrebljavate drugi port, tada morate izmijeniti broj porta u svom URL-u. Iz padajućeg izbornika odabire se metoda POST, a sljedeći URL koristi se za slanje API zahtjeva za API registracije.

http: // localhost: 8000 / api / register

Tri su polja definirana kao obavezna polja za korisnika tablica za stvaranje novog korisnika. Ovi su Ime, e-mail, i zaporka. Postavite tri tipke i vrijednosti za ova polja prikazana u nastavku i kliknite na poslati dugme. The Registar() metoda ApiController pozvat će se prema ruti ako je zahtjev poslan pravilno.

Sljedeći će se odgovor pojaviti ako je novi korisnički zapis uspješno umetnut u korisnika stol. Šifra odgovora, 200 označava da je HTTP zahtjev bio uspješan i token se generira nakon umetanja novog korisnika koji je prikazan u tijelu odgovora u JSON formatu.

API za prijavu na test:

Odaberite OBJAVI metoda poput Registriraj API to je prikazano prije. Postavite sljedeći URL u adresnu traku da biste poslali API zahtjev za API za prijavu.

http: // localhost: 8000 / api / login

Dva su polja obavezna za autentifikaciju bilo kojeg korisnika na temelju zapisa korisnika stol. Ovi su e-mail i zaporka. Postavite dvije tipke i vrijednosti za ova polja prikazana u nastavku i kliknite na poslati dugme. The prijaviti se() metoda ApiController pozvat će se prema ruti ako je zahtjev poslan pravilno.

Sljedeći će se odgovor pojaviti ako se korisnik uspješno provjeri autentičnost na temelju zapisa korisnika stol. Šifra odgovora, 200 označava da je HTTP zahtjev bio uspješan. Vrijednost tokena generira se nakon provjere autentičnosti korisnika i vraća tijelo odgovora u JSON formatu.

Sljedeće ćete tijelo odgovor dobiti kad se daju pogrešne vjerodajnice za autentifikaciju korisnika. 401 ovdje se generira kôd pogreške koji ukazuje na neovlašteni pristup.

API korisničkih podataka o testiranju:

Neki parametri zaglavlja trebaju se postaviti prije slanja zahtjeva za API pojedinosti. Klikni na zaglavlja karticu odjeljka zahtjeva i dodajte tri vrijednosti zaglavlja za identifikaciju ovjerenog korisnika. Vrijednost tokena kopira se iz tijela odgovora i postavlja za vrijednost autorizacije.

Prihvaćam: application / json
Vrsta sadržaja: application / json
Odobrenje:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwianRpIjoiNDU3OWUwNmEwZ
jE3ZWNmYThhOTkxNDJkMmQwZDQxYzU4MGFiMDM3OTc4NTIwYzA4NTJjZTk2MWU4NGFkYjE3ODU
wMzc3OTIwMzk3OWVmNTkiLCJpYXQiOjE1OTkyNzk3MTYsIm5iZiI6MTU5OTI3OTcxNiwiZXhwI
joxNjMwODE1NzE2LCJzdWIiOiI1Iiwic2NvcGVzIjpbXX0.fJYvzFsiD4WKcklpZ2-
w64UVOOk1DqMo_KbLCI7C00xQKhuQupVkgRULUx3e2mJIoJ8ET0MLngpUIFFS8Aet7W8KoQCcL
SzMKUjot4fhONQ5Dyzmb4csAIXFVoKK8YRm4gPCq-b1OW5e9K5gcrLKmqnt9a6nywoGHkXqq4GE
qHnHFgPnOkMfjbtGuKIj3aMtA2i7qHcbWdIt5O970LdM1ehW-AuMESZflJdjfN6zkHK4Kc93-
vLpZbgEKh1XD0p1fJEWyms590oIPERuWVS1hfCkpsnIFYRoB04TYTYPHdL25qwBW0m0VaTQG9fH
7xgiJFSkyS-FGmmUc7lglM8JUeVYmZfv-o5XVRlQ2EOCjLHSOFvKkuFzw-j3YfKaHBWY3Oo4gRD4
foWV2tGvDnF1zR_b11BDfDgv3rrl8mZNHx9DHjaFqUbWEdsnZbWouOR9wy
Vh0GI1fcIkWoWSM_BoNaTFittr9zqjkIWrQtKS3kVqsnCF8nIKXLp2dGaXdd8mWYWoq34NLYHhp
0u2TRy_BFFe3y_icgQVLBHcmEwdiXJISM8l9ctlodgRqA3wAQP11fV8cJfAIP2mfz3uUVY6nDqAr
kv6zRQ9oE4NCsqVvXeVp7RWOfakpu7EcQnwVDoq4hZ5j9tWx8bZ5eybMgHvRXkQKheie2j6Gzt0-rBUrFM

Odjeljak zaglavlja dijela zahtjeva izgledat će kao sljedeća slika. Morate postaviti vrijednost tokena koja se generira u tijelu odgovora vašeg poštarskog agenta.

Zatim kliknite na Ovlaštenje karticu odjeljka zahtjeva i odaberite Žeton na donositelja kao vrsta autorizacije iz Tip padajući.

Sada odaberite OBJAVI metodu, u adresnu traku postavite sljedeći URL. Nazvat će user_info () metoda ApiController koji će dohvatiti detaljne informacije ovjerenog korisnika.

http: // localhost: 8000 / api / detalji

Ako su podaci o vrijednosti tokena i zaglavlju pruženi ispravno, tada će se detalji tog korisnika vratiti kao tijelo odgovora u JSON formatu poput sljedeće slike.

Video vodič

Zaključak:

Autentifikacija putovnice koristi se na mnogim web mjestima Laravel zbog svojih korisnih značajki. To čini Laravel sustav provjere autentičnosti sigurnijim od zadane provjere autentičnosti i pruža druge usluge koje nisu dostupne u zadanoj provjeri autentičnosti. Osnovne upotrebe putovnice Laravel s postupkom instalacije i konfiguracije pravilno su opisane u ovom vodiču. Upotreba poštarskog agenta ovdje je također prikazana za testiranje API-ja. Nadam se da će čitatelj razumjeti funkcionalnosti paketa putovnica nakon što pročita ovaj vodič.

Instalirajte najnoviji Dolphin Emulator za Gamecube i Wii na Linux
Dolphin Emulator omogućuje vam igranje odabranih Gamecube i Wii igara na Linux osobnim računalima (PC). Dolphin Emulator je slobodno dostupan i emula...
Kako koristiti GameConqueror Cheat Engine u Linuxu
Članak pokriva vodič o korištenju GameConqueror varalice u Linuxu. Mnogi korisnici koji igraju igre na sustavu Windows često koriste aplikaciju "Cheat...
Najbolji emulatori igraće konzole za Linux
Ovaj će članak navesti popularni softver za emulaciju igraće konzole dostupan za Linux. Emulacija je sloj kompatibilnosti softvera koji oponaša hardve...