laravel

„Laravel“ paso pamoka

„Laravel“ paso pamoka
5 „Laravel“ versijoje įdiegtos kelios autentifikavimo funkcijos.2. Norint įgyvendinti skirtingus maršrutus, kurie užtruko daug laiko ir buvo neefektyvūs, reikalingos skirtingos autentifikavimo sistemos. Ta pati autentifikavimo sistema gali būti naudojama Žiniatinklis ir API naudojant žetonų pagrindo autentifikavimo funkciją. Tačiau ši autentifikavimo sistema nėra saugesnė programai. Dabar programos „Laravel“ autentifikavimo sistemą galima apsaugoti naudojant naują Pasas „Laravel“ autentifikavimo funkcija. Jis naudoja du ENV, kurie yra „Laravel“ paso OAUTH API paslaptys. Tai yra API_CLIENT_ID ir API_CLIENT_SECRET. Kiekvienam vartotojui sukuriamas prieigos raktas, kai naudojamas „Laravel“ pasas, ir jis leidžia vartotojui pasiekti kai kuriuos saugius galinius taškus. Kaip galite sukurti saugią API autentifikavimo sistemą naudodami „Laravel“ pasą ir pasiekti prieigą prie autorizuoto turinio, parodyta šioje pamokoje.

„Laravel“ paso naudojimo pranašumai:

OAUTH2 protokolas gali būti integruotas su „Laravel“ programa naudojant „Laravel“ slaptažodį. Kai vartotojas nori gauti ar įterpti duomenis iš programos, prieigos užklausa bus siunčiama šiuo protokolu. Leidimas bus suteiktas vartotojui suteikiant prieigą. Kai kurie pagrindiniai paso autentifikavimo pranašumai yra paminėti žemiau.

Būtinos sąlygos:

Prieš įdiegdami ir naudodami „Laravel Passport“ vartotojo autentifikavimui, turite atlikti šią užduotį.

Įdiekite „Laravel“ pasą:

Paleiskite šią komandą iš terminalo, kad įdiegtumėte „Laravel Passport“ paketą naudodami kompozitorių.

$ kompozitorius reikalauja laravel / paso

Reikės sukurti vartotojų lentelę duomenų bazėje prieš įdiegiant paso paketą. Trys perkėlimo bylos ir a Vartotojas modelis buvo sukurtas automatiškai, kai sukuriamas naujas „Laravel“ projektas. Vienas jų naudojamas kuriant a vartotojų stalo. Eikite į „Laravel“ projekto aplanką ir paleiskite šią komandą, kad sukurtumėte vartotojų stalo.

$ php amatininkai migruoja

Norėdami įdiegti projekto paso paketą, vykdykite šią komandą.

amatininko pasas $ php: įdiekite

Sėkmingai įdiegę „Laravel“ pasą savo projekte, gausite šią informaciją. Čia sugeneruojami du slapti raktai. Vienas už asmeninės prieigos klientas o kitas už slaptažodžio suteikimo klientas.

„Laravel“ paso konfigūracija:

Atidaryk Vartotojas modelis, kuris yra toje vietoje, Programos \ modelis.php iš redaktoriaus ir modifikuokite modelį, kaip nurodyta toliau. Papildyti Laravel \ Passport \ HasApiTokens klasės pradžioje ir klasės viduje naudokite HasApiTokens ir Notifiable.

vardų srities programa;
naudokite „Illuminate \ Contracts \ Auth \ MustVerifyEmail“;
kaip „Authenticatable“ naudokite „Illuminate \ Foundation \ Auth \ User“;
naudokite „Illuminate \ Notifications \ Notifiable“;
// Pridėta čia
naudoti Laravel \ Passport \ HasApiTokens;
klasės vartotojas išplečia autentifikavimo galimybę

// Pakeista čia
naudoti „HasApiTokens“, „Notifiable“;
/ **
* Masės priskirtini atributai.
*
* @var masyvas
* /
apsaugotas $ fillable = [
„vardas“, „el. paštas“, „slaptažodis“,
];
/ **
* Atributai, kurie turėtų būti paslėpti masyvams.
*
* @var masyvas
* /
apsaugotas $ paslėptas = [
„slaptažodis“, „įsiminti_token“,
];
/ **
* Atributus, kurie turėtų būti perduoti vietiniams tipams.
*
* @var masyvas
* /
apsaugotas $ metimas = [
'email_verified_at' => 'datos laikas',
];

Tada atidarykite app / Providers / AuthServiceProvider.php registruoti maršrutus, kurie būtini norint išleisti ir atšaukti prieigos žetonus. „Passport :: route“ metodas vadinamas „boot“ metodu AuthServiceProvider. Pakeiskite žemiau pateikto failo turinį.

vardų srities programos \ teikėjai;
kaip „ServiceProvider“ naudoti „Illuminate \ Foundation \ Support \ Providers \ AuthServiceProvider“;
naudokite „Illuminate \ Support \ Facades \ Gate“;
// čia pridedamas pasas
naudoti Laravel \ Passport \ Passport;
„AuthServiceProvider“ klasė praplečia „ServiceProvider“

/ ** Programos politikos susiejimas.
*
* @var masyvas
* /
apsaugota $ politika = [
'App \ Model' => 'Programa \ Policy \ ModelPolicy',
];
/ **
* Užregistruokite visas autentifikavimo / autorizavimo paslaugas.
*
* @return negalioja
* /
viešosios funkcijos įkrovimas ()

$ this-> registerPolicies ();
Pasas :: maršrutai ();
Pasas :: žetonaiExpireIn (now () -> addDays (15));
Pasas :: refreshTokensExpireIn (dabar () -> addDays (30));

Tada atidarykite config \ app.php ir įterpkite šią eilutę į teikėjai masyvas, apimantis būtiną „Laravel“ paso naudojimo klasę.

Laravel \ Passport \ PassportServiceProvider :: klasė,

Tada atidarykite konfigūruoti \ auth.php ir nustatykite API tvarkyklę į pasas viduje konors sargybiniai masyvas parodyta žemiau.

„sargybiniai“ => [
'internetas' => [
'driver' => 'sesija',
'Provider' => 'vartotojai',
],
„api“ => [
„vairuotojas“ => „pasas“,
'Provider' => 'vartotojai',
'hash' => klaidinga,
],
],

Įdiegti registravimo ir autentifikavimo valdiklį:

Turite sukurti valdiklį, kad įdiegtumėte autentifikavimo sistemą naudodami paso paketą. Norėdami sukurti, vykdykite šią komandą iš projekto šakninio aplanko „ApiController“.

$ php amatininkų gamintojas: valdiklis ApiController

Kitoje šios mokymo programos dalyje trys metodai pridedami „ApiController“ sukurti naują vartotoją, autentifikuoti vartotoją ir gauti išsamią autentifikuoto vartotojo informaciją.

A. Registruotis

Naujas vartotojas gali būti sukurtas vartotojų lentelę įgyvendinant a Registruotis() metodas. Pridėkite šį kodą viduje „ApiController“ įdiegti registro API. Būtinos lauko reikšmės kuriant naują vartotoją gaunamos argumentu, $ užklausa metodo Registruotis(). Tikrintojas klasė naudojama tikrinti, ar lauko vertės yra pagrįstos, ar ne pagal apibrėžtas patvirtinimo taisykles. Jei nepavyksta () metodas grąžina true, tada jis grąžins klaidos pranešimą JSON formatu. Jei nepavyksta () metodas grąžina klaidingą, tada sugeneruojamas maišos slaptažodis ir nauja vartotojo informacija bus įtraukta į vartotojų lentelę. Sukūrus naują vartotoją bus sukurtas prieigos raktas ir bus grąžintas sėkmės pranešimas su žetono verte.

viešųjų funkcijų registras („Request $ request“)

/ ** Patvirtinkite duomenis naudodami patvirtinimo taisykles
* /
$ validator = Validator :: make ($ request-> all (), [
'vardas' => 'būtinas',
'email' => 'reikalingas | el. paštas',
'slaptažodis' => 'reikalingas',
]);
/ ** Patikrinkite, ar patvirtinti nepavyksta, ar ne
* /
jei ($ validator-> nepavyksta ())
/ ** Grąžinimo klaidos pranešimas
* /
grąžinimo atsakymas () -> json (['error' => $ validator-> klaidos ()]);

/ ** Saugokite visas laukų reikšmes
* /
$ newuser = $ request-> visi ();
/ ** Sukurkite užkoduotą slaptažodį naudodamiesi maiša
* /
$ newuser ['password'] = Hash :: make ($ newuser ['password']);
/ ** Į lentelę įterpkite naują vartotoją
* /
$ user = User :: create ($ newuser);
/ ** Sukurkite prieigos prieigos raktą vartotojui
* /
$ success ['token'] = $ user-> createToken ('AppName') -> accessToken;
/ ** Grąžinkite sėkmės pranešimą su simboline verte
* /
grįžimo atsakymas () -> json (['sėkmė' => $ sėkmė], 200);

B. Prisijungti:

Bet kuris vartotojas gali būti patvirtintas diegiant prisijungti () metodas. Pridėkite šį kodą viduje „ApiController“ įdiegti prisijungimo API. Reikalingi laukai, skirti autentifikuoti vartotoją, gaunami iš $ užklausa apie prisijungti () metodas. bandymas () metodas patikrins paštu ir Slaptažodis autentifikavimui. Jei reikšmės sutampa su vartotojų lentelę, tada bus gautas konkretaus vartotojo įrašas ir grąžinama žetono vertė. Jei autentifikuoti nepavyksta, tada Neteisėtas pranešimas bus grąžintas.

viešosios funkcijos prisijungimas (užklausa „$ request“)

/ ** Perskaitykite vartotojo perduotus kredencialus
* /
$ kredencialai = [
'email' => $ request-> el,
'password' => $ request-> slaptažodis
];
/ ** Patikrinkite, ar įgaliojimai galioja, ar ne
* /
jei (auth () -> bandymas ($ kredencialai))
/ ** Saugokite autentifikuoto vartotojo informaciją
* /
$ vartotojas = Auth :: vartotojas ();
/ ** Sukurkite autentifikuoto vartotojo prieigos raktą
* /
$ success ['token'] = $ user-> createToken ('AppName') -> accessToken;
grįžimo atsakymas () -> json (['sėkmė' => $ sėkmė], 200);
Kitas
/ ** Grąžinimo klaidos pranešimas
* /
grąžinimo atsakymas () -> json (['error' => 'neleistina'], 401);

C. Išsami vartotojo informacija

Išsamią bet kurio vartotojo informaciją galite gauti po autentifikavimo įdiegę „User API“. Įtraukite šį kodą į „ApiController“ gauti išsamią bet kurio autentifikuoto vartotojo informaciją.

viešoji funkcija user_info ()

/ ** Gaukite autentifikuoto vartotojo informaciją
* /
$ vartotojas = Auth :: vartotojas ();
/ ** Grąžinti vartotojo duomenis
* /
grąžinimo atsakymas () -> json (['sėkmė' => $ vartotojas], 200);

Valdiklio API maršrutas:

Atidaryk maršrutai \ programa.php failas ir modifikuokite turinį šiais kodais, kad apibrėžtumėte API paslaugų prisijungimo maršrutą, registracijos maršrutą ir išsamią informaciją.

/ ** Prisijungimo API maršrutas * /
Route :: post ('login', '[email protected]');
/ ** Registrų API maršrutas * /
Route :: post ('register', '[email protected]');
/ ** Išsamios vartotojo API maršrutas * /
Maršrutas :: tarpinė programinė įranga ('auth: api') -> grupė (funkcija ()
Route :: post ('details', '[email protected] _info');
);

Norėdami paleisti „Laravel“ kūrimo serverį, vykdykite šią komandą.

$ php amatininkas tarnauja

Išbandykite API autentifikavimą naudodami paštininką:

„Postman“ yra labai naudinga priemonė išbandyti RESTful API. HTTP užklausą galima sugeneruoti labai lengvai, kad būtų galima patikrinti API funkcijas, naudojant šios programos vartotojo sąsają, nerašant didelio kiekio kodo užklausoms siųsti. „Postman“ gali tvarkyti įvairias HTTP užklausas ir komunalines paslaugas, kad galėtų sukurti API. Jis turi ir mokamą, ir nemokamą „Linux“ versiją.

Įdiekite „Postman Agent“:

Paleiskite šią komandą iš terminalo, kad įdiegtumėte paštininko agentą „Ubuntu“.

$ sudo snap install paštininkas

Atidarykite programą po įdiegimo. Ši sąsaja pasirodys atidarius naują paštininko langą.

„Test register“ API:

Spustelėkite sukurti užklausą nuoroda, kad atidarytumėte užklausos langą. „Laravel“ kūrimo serveris veikia uoste 8000 pagal nutylėjimą, kuris čia naudojamas. Jei naudojate kitą prievadą, turite pakeisti prievado numerį savo URL. Išskleidžiamajame meniu pasirenkamas POST metodas ir šis URL naudojamas siunčiant API užklausą dėl registro API.

http: // localhost: 8000 / api / register

Trys laukai apibrėžiami kaip privalomi vartotojų lentelę, kad sukurtumėte naują vartotoją. Šitie yra vardas, paštu, ir Slaptažodis. Šiems žemiau nurodytiems laukams nustatykite tris raktus ir reikšmes ir spustelėkite siųsti mygtuką. The Registruotis() metodas „ApiController“ bus paskambinta pagal maršrutą, jei užklausa bus išsiųsta tinkamai.

Šis atsakymas bus rodomas, jei naujas vartotojo įrašas bus sėkmingai įterptas į vartotojų stalo. Atsakymo kodas, 200 rodo, kad HTTP užklausa buvo sėkminga ir prieigos raktas generuojamas įterpus naują vartotoją, kuris rodomas atsakymo tekste JSON formatu.

Bandomoji prisijungimo API:

Pasirinkite POST metodas kaip Užregistruoti API kad parodyta anksčiau. Adreso juostoje nustatykite šį URL, jei norite siųsti API užklausą prisijungimo API.

http: // localhost: 8000 / api / login

Du laukai yra būtini norint patvirtinti bet kurį vartotoją pagal. Įrašus vartotojų stalo. Šitie yra paštu ir Slaptažodis. Šiems žemiau nurodytiems laukams nustatykite du raktus ir reikšmes ir spustelėkite siųsti mygtuką. The Prisijungti() metodas „ApiController“ bus paskambinta pagal maršrutą, jei užklausa bus išsiųsta tinkamai.

Šis atsakymas bus rodomas, jei vartotojas bus sėkmingai patvirtintas pagal. Įrašus vartotojų stalo. Atsakymo kodas, 200 rodo, kad HTTP užklausa buvo sėkminga. Pripažinimo vertė sukuriama autentifikavus vartotoją ir atsakymo tekstą grąžina JSON formatu.

Gausite šį atsakymo turinį, kai bus pateikti neteisingi prisijungimo duomenys vartotojo autentifikavimui. 401 čia sugeneruojamas klaidos kodas, nurodantis neteisėtą prieigą.

Išbandykite išsamią vartotojo informaciją API:

Kai kuriuos antraštės parametrus reikia nustatyti prieš siunčiant užklausą dėl išsamios API. Spustelėkite antraštes užklausos skyriaus skirtuką ir pridėkite tris antraštės reikšmes, kad atpažintumėte autentifikuotą vartotoją. Ženklo vertė nukopijuojama iš atsakymo teksto ir nustatoma prieigos teisės reikšmei.

Priimti: paraiška / json
Turinio tipas: application / json
Leidimas:
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

Užklausos dalies antraščių skyrius bus panašus į šį vaizdą. Turite nustatyti savo raktinę vertę, kuri sugeneruojama laiškininko agento atsakymo tekste.

Tada spustelėkite Leidimas užklausos skyriaus skirtuką ir pasirinkite Turėtojo žetonas kaip autorizacijos tipas iš Tipas išskleidžiamasis meniu.

Dabar pasirinkite POST metodą, adreso juostoje nustatykite šį URL. Tai vadins vartotojo_info () metodas „ApiController“ kad atgaus išsamią autentifikuoto vartotojo informaciją.

http: // localhost: 8000 / api / išsami informacija

Jei prieigos rakto vertė ir antraštės informacija pateikiama tinkamai, išsami informacija apie tą vartotoją bus grąžinta kaip atsakymo turinys JSON formatu, kaip šis vaizdas.

Vaizdo įrašų pamoka

Išvada:

Paso autentifikavimas dabar naudojamas daugelyje „Laravel“ svetainių. Tai daro „Laravel“ autentifikavimo sistemą saugesnę nei numatytasis autentifikavimas ir teikia kitas paslaugas, kurių nėra pagal numatytąjį autentifikavimą. Pagrindiniai „Laravel“ paso naudojimo būdai su diegimo ir konfigūravimo procesu yra tinkamai aprašyti šioje pamokoje. Laiško agento naudojimas taip pat parodytas API bandymui. Tikiuosi, kad skaitytojas, perskaitęs šią pamoką, supras paso paketo funkcijas.

Kaip pakeisti kairįjį ir dešinįjį pelės mygtukus „Windows 10“ kompiuteryje
Gana įprasta, kad visi kompiuterio pelės įrenginiai yra ergonomiškai sukurti dešiniarankiams. Tačiau yra pelių prietaisų, specialiai sukurtų kairiaran...
Mėgdžiokite pelės paspaudimus, užveskite pelės žymeklį naudodami pelę „Clickless Mouse“ sistemoje „Windows 10“
Pelės ar klaviatūros naudojimas netinkamoje laikysenoje, kai naudojama per daug, gali sukelti daug sveikatos problemų, įskaitant įtampą, riešo kanalo ...
Pridėkite pelės gestus prie „Windows 10“ naudodami šiuos nemokamus įrankius
Pastaraisiais metais kompiuteriai ir operacinės sistemos labai išsivystė. Buvo laikas, kai vartotojai turėjo naudoti komandas naršydami per failų tvar...