laravel

Výukový program Laravel Passport

Výukový program Laravel Passport
Ve verzi Laravel verze 5 je implementováno více funkcí ověřování.2. K implementaci různých tras, které byly časově náročné a neefektivní, jsou vyžadovány různé ověřovací systémy. Lze použít stejný ověřovací systém Web a API pomocí funkce ověřování na základě tokenu. Tento ověřovací systém však pro aplikaci není bezpečnější. Nyní lze autentizační systém aplikace Laravel zabezpečit pomocí nového Cestovní pas funkce ověřování Laravelu. Používá dva ENV, které jsou tajemstvím Laravelova pasu OAUTH API. Jedná se o API_CLIENT_ID & API_CLIENT_SECRET. Při použití Laravellova pasu se pro každého uživatele generuje přístupový token, který uživateli umožňuje přístup k některým zabezpečeným koncovým bodům. Jak můžete vytvořit zabezpečený systém ověřování API pomocí Laravel pas a přístup k autorizovanému obsahu jsou uvedeny v tomto kurzu.

Výhody používání Laravel Passport:

Protokol OAUTH2 lze integrovat do aplikace Laravel pomocí hesla Laravel. Pokud chce uživatel načíst nebo vložit data z aplikace, bude tímto protokolem odeslána žádost o přístup. Oprávnění bude uživateli uděleno autorizací uživatele k přístupu. Níže jsou uvedeny některé hlavní výhody autentizace pomocí pasu.

Předpoklady:

Před instalací a použitím Laravel Passport pro ověření uživatele musíte provést následující úkol.

Nainstalujte si Laravel Passport:

Spusťte následující příkaz z terminálu a nainstalujte balíček Laravel Passport pomocí skladatele.

$ skladatel vyžaduje laravel / pas

Budete potřebovat vytvořit uživatelů před instalací pasového balíčku. Tři migrační soubory a Uživatel model byly generovány automaticky při vytvoření nového projektu Laravel. Jeden z nich se používá k vytvoření a uživatelů stůl. Přejděte do složky projektu Laravel a vytvořte následující příkaz migrate uživatelů stůl.

$ php řemeslník migruje

Spuštěním následujícího příkazu nainstalujte balíček pasu pro projekt.

$ php artisan passport: install

Po úspěšné instalaci laravelského pasu do projektu získáte následující informace. Zde jsou vygenerovány dva tajné klíče. Jeden pro osobní přístup klient a další pro klient pro udělení hesla.

Konfigurace laravel pasu:

Otevři Uživatel model, který se nachází v dané lokalitě, App \ model.php z editoru a upravte model, jak je uvedeno níže. Přidat Laravel \ Passport \ HasApiTokens na začátku třídy a použijte HasApiTokens a Notifiable uvnitř třídy.

jmenný prostor App;
použijte Illuminate \ Contracts \ Auth \ MustVerifyEmail;
použít Illuminate \ Foundation \ Auth \ User jako Authenticatable;
použijte Illuminate \ Notifications \ Notifiable;
// Přidáno zde
použijte Laravel \ Passport \ HasApiTokens;
třída Uživatel rozšiřuje Authenticatable

// Upraveno zde
použít HasApiTokens, Notifiable;
/ **
* Atributy, které lze hromadně přiřadit.
*
* @var pole
* /
chráněné $ fillable = [
'name', 'email', 'password',
];
/ **
* Atributy, které by měly být pro pole skryty.
*
* @var pole
* /
chráněný $ skrytý = [
'heslo', 'remember_token',
];
/ **
* Atributy, které by měly být přetypovány na nativní typy.
*
* @var pole
* /
chráněné $ casts = [
'email_verified_at' => 'datetime',
];

Dále otevřete aplikace / poskytovatelé / AuthServiceProvider.php zaregistrovat trasy, které jsou nutné k vydání a zrušení přístupových tokenů. Metoda Passport :: routes se volá v rámci bootovací metody AuthServiceProvider. Upravte obsah souboru uvedeného níže.

jmenný prostor App \ Providers;
použít Illuminate \ Foundation \ Support \ Providers \ AuthServiceProvider jako ServiceProvider;
použijte Illuminate \ Support \ Fasády \ Gate;
// zde je přidán pas
použijte Laravel \ Passport \ Passport;
třída AuthServiceProvider rozšiřuje ServiceProvider

/ ** Mapování zásad pro aplikaci.
*
* @var pole
* /
chráněné zásady $ = [
'App \ Model' => 'App \ Policies \ ModelPolicy',
];
/ **
* Zaregistrujte všechny ověřovací / autorizační služby.
*
* @return void
* /
boot veřejné funkce ()

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

Dále otevřete config \ app.php a vložte následující řádek do poskytovatelé pole, aby zahrnovalo nezbytnou třídu pro použití Laravelova pasu.

Laravel \ Passport \ PassportServiceProvider :: třída,

Dále otevřete config \ auth.php a nastavte ovladač API na cestovní pas v stráže pole zobrazené níže.

'stráže' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
'hash' => false,
],
],

Implementujte ovladač pro registraci a autentizaci:

Musíte vytvořit řadič pro implementaci ověřovacího systému pomocí pasového balíčku. Spusťte následující příkaz z kořenové složky projektu a vytvořte jej ApiController.

$ php artisan make: controller ApiController

V další části tohoto kurzu jsou uvnitř metody přidány tři metody ApiController vytvořit nového uživatele, ověřit uživatele a získat podrobné informace o ověřeném uživateli.

A. Registrovat

Do služby lze vytvořit nového uživatele uživatelů tabulka implementací a Registrovat() metoda. Přidejte následující kód dovnitř ApiController implementovat registrační API. Argument načte potřebné hodnoty polí pro vytvoření nového uživatele, $ požadavek metody Registrovat(). Validátor třída se používá ke kontrole, zda jsou hodnoty polí platné nebo ne na základě definovaných pravidel ověřování. Pokud selže () metoda vrátí true, pak vrátí chybovou zprávu ve formátu JSON. Pokud selže () metoda vrátí hodnotu false, poté se vygeneruje hash heslo a do tabulky uživatelů se vloží nové informace o uživateli. Po vytvoření nového uživatele bude vygenerován token a bude vrácena zpráva o úspěchu s hodnotou tokenu.

veřejný funkční registr (požadavek $ požadavek)

/ ** Ověřte data pomocí ověřovacích pravidel
* /
$ validator = Validator :: make ($ request-> all (), [
'name' => 'required',
'email' => 'required | email',
'password' => 'required',
]);
/ ** Zkontrolujte, zda se ověření nezdaří nebo ne
* /
if ($ validator-> failed ())
/ ** Vrátit chybovou zprávu
* /
návratová odpověď () -> json (['error' => $ validator-> errors ()]);

/ ** Uložte všechny hodnoty polí
* /
$ newuser = $ request-> all ();
/ ** Vytvořte šifrované heslo pomocí hash
* /
$ newuser ['heslo'] = Hash :: make ($ newuser ['heslo']);
/ ** Vložte do tabulky nového uživatele
* /
$ user = Uživatel :: create ($ newuser);
/ ** Vytvořit přístupový token pro uživatele
* /
$ success ['token'] = $ user-> createToken ('AppName') -> accessToken;
/ ** Vrátit zprávu o úspěchu s hodnotou tokenu
* /
návratová odpověď () -> json (['success' => $ success], 200);

B. Přihlásit se:

Implementací lze ověřit libovolného uživatele přihlášení () metoda. Přidejte následující kód dovnitř ApiController implementovat přihlašovací API. Povinná pole k ověření uživatele jsou načtena z $ požadavek z přihlášení () metoda. pokus() metoda zkontroluje hodnoty e-mailem a Heslo pro ověření. Pokud se hodnoty shodují s hodnotami uživatelů tabulka, pak se načte záznam konkrétního uživatele a vrátí se hodnota tokenu. Pokud ověření selže, pak Neoprávněný zpráva bude vrácena.

veřejné funkce přihlášení (požadavek $ požadavek)

/ ** Přečtěte si přihlašovací údaje předané uživatelem
* /
$ pověření = [
'email' => $ request-> email,
'password' => $ request-> heslo
];
/ ** Zkontrolujte, zda jsou přihlašovací údaje platné nebo neplatné
* /
if (auth () -> pokus ($ pověření))
/ ** Uložení informací o ověřeném uživateli
* /
$ user = Auth :: user ();
/ ** Vytvořit token pro ověřeného uživatele
* /
$ success ['token'] = $ user-> createToken ('AppName') -> accessToken;
návratová odpověď () -> json (['success' => $ success], 200);
else
/ ** Vrátit chybovou zprávu
* /
return response () -> json (['error' => 'Neoprávněné'], 401);

C. Podrobnosti o uživateli

Podrobné informace o každém uživateli získáte po ověření implementací User API. Přidejte následující kód do ApiController získat podrobné informace o každém ověřeném uživateli.

veřejná funkce user_info ()

/ ** Načíst informace o ověřeném uživateli
* /
$ user = Auth :: user ();
/ ** Vrátit údaje o uživateli
* /
return response () -> json (['success' => $ user], 200);

Trasa API pro řadič:

Otevři trasy \ aplikace.php soubor a upravte obsah pomocí následujících kódů k definování trasy přihlášení, registrace trasy a trasy podrobností pro služby API.

/ ** Route for login API * /
Route :: post ('login', '[email protected]');
/ ** Route for register API * /
Route :: post ('register', '[email protected]');
/ ** Route for details user API * /
Route :: middleware ('auth: api') -> group (function ()
Route :: post ('details', '[[email protected] _info');
);

Spuštěním následujícího příkazu spusťte vývojový server Laravel.

$ php řemeslník slouží

Otestujte ověřování API pomocí poštovního doručovatele:

Postman je velmi užitečný nástroj pro testování RESTful API. Požadavek HTTP lze snadno vygenerovat a otestovat funkčnost API pomocí uživatelského rozhraní této aplikace bez psaní velkého množství kódu pro odesílání požadavků. Postman může zpracovávat různé požadavky HTTP a nástroje pro vývoj API. Má placenou i bezplatnou verzi pro Linux.

Nainstalujte si Postman Agenta:

Spusťte následující příkaz z terminálu a nainstalujte agenta poštovního doručovatele na Ubuntu.

$ sudo snap install postman

Po instalaci otevřete aplikaci. Po otevření nového okna poštovního doručovatele se zobrazí následující rozhraní.

Test Register API:

Klikněte na vytvořit požadavek odkaz pro otevření okna požadavku. Laravel vývojový server běží na portu 8000 ve výchozím nastavení se zde používá. Pokud používáte jiný port, musíte upravit číslo portu v adrese URL. Z rozevíracího seznamu je vybrána metoda POST a následující adresa URL se používá k odeslání požadavku API na registraci API.

http: // localhost: 8000 / api / registr

Tři pole jsou definována jako povinná pole pro uživatelů tabulky k vytvoření nového uživatele. Tyto jsou název, e-mailem, a Heslo. Nastavte tři klíče a hodnoty pro tato pole uvedená níže a klikněte na poslat knoflík. The Registrovat() metoda ApiController pokud bude požadavek odeslán správně, bude volán podle trasy.

Pokud je nový záznam uživatele úspěšně vložen do souboru, zobrazí se následující odpověď uživatelů stůl. Kód odpovědi, 200 označuje, že požadavek HTTP byl úspěšný a po vložení nového uživatele se vygeneruje token, který se zobrazí v těle odpovědi ve formátu JSON.

Test Login API:

Vybrat POŠTA metoda jako Zaregistrujte API který je zobrazen dříve. Nastavením následující adresy URL do adresního řádku odešlete požadavek API na rozhraní API pro přihlášení.

http: // localhost: 8000 / api / přihlášení

Dvě pole jsou povinná k ověření jakéhokoli uživatele na základě záznamů uživatelů stůl. Tyto jsou e-mailem a Heslo. Nastavte dva klíče a hodnoty pro tato pole zobrazená níže a klikněte na poslat knoflík. The přihlásit se() metoda ApiController pokud bude požadavek odeslán správně, bude volán podle trasy.

Pokud je uživatel úspěšně ověřen na základě záznamů uživatele, zobrazí se následující odpověď uživatelů stůl. Kód odpovědi, 200 označuje, že požadavek HTTP byl úspěšný. Hodnota tokenu se vygeneruje po ověření uživatele a vrátí tělo odpovědi ve formátu JSON.

Následující text odpovědi získáte, když budou k ověření uživatele poskytnuta nesprávná pověření. 401 Zde se generuje chybový kód, který označuje neoprávněný přístup.

Testovat uživatelské údaje API:

Před odesláním požadavku na Podrobnosti API je nutné nastavit některé parametry záhlaví. Klikněte na záhlaví záložce sekce požadavku a přidáním tří hodnot záhlaví k identifikaci ověřeného uživatele. Hodnota tokenu je zkopírována z těla odpovědi a nastavena na hodnotu Autorizace.

Přijmout: application / json
Typ obsahu: aplikace / json
Povolení:
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

Sekce záhlaví části požadavku bude vypadat jako na následujícím obrázku. Musíte nastavit hodnotu svého tokenu, která se generuje v těle odpovědi vašeho poštovního agenta.

Dále klikněte na Povolení kartu v části požadavku a vyberte Nosný žeton jako typ povolení od Typ rozevírací seznam.

Nyní vyberte POŠTA metoda, nastavte do adresního řádku následující adresu URL. Zavolá to Uživatelské informace() metoda ApiController který načte podrobné informace o ověřeném uživateli.

http: // localhost: 8000 / api / podrobnosti

Pokud jsou hodnota tokenu a informace o záhlaví poskytnuty správně, pak budou podrobnosti o tomto uživateli vráceny jako tělo odpovědi ve formátu JSON, jako je následující obrázek.

Výukový program pro video

Závěr:

Ověření pomocí pasu se nyní používá na mnoha webových stránkách Laravel pro své užitečné funkce. Díky němu je ověřovací systém Laravel bezpečnější než výchozí ověřování a poskytuje další služby, které ve výchozím ověřování nejsou k dispozici. Základní použití Laravelova pasu s procesem instalace a konfigurace jsou v tomto tutoriálu popsána správně. Zde je také uvedeno použití poštovního agenta k testování API. Doufám, že čtenář po přečtení tohoto tutoriálu porozumí funkcím pasového balíčku.

WinMouse vám umožňuje přizpůsobit a vylepšit pohyb ukazatele myši na PC s Windows
Chcete-li vylepšit výchozí funkce ukazatele myši, použijte freeware WinMouse. Přidává další funkce, které vám pomohou vytěžit ze své skromné ​​myši ma...
V systému Windows 10 nefunguje levé tlačítko myši
Pokud používáte speciální myš s notebookem nebo stolním počítačem, ale levé tlačítko myši nefunguje ve Windows 10/8/7 z nějakého důvodu uvádíme několi...
Kurzor při psaní v systému Windows 10 skáče nebo se pohybuje náhodně
Pokud zjistíte, že kurzor myši skáče nebo se pohybuje sám, automaticky, náhodně při psaní v notebooku nebo počítači se systémem Windows, pak vám někte...