V nasledujúcom postupe ukážem, ako implementovať do vytvorenej (základnej kostry) Laravel aplikácie (vo verzii 9) autentifikáciu (tj.registráciu, prihlásenie a odhlásenie) s využitím package-u "Jetstream".
Najprv je potrebné mať pripravenú nejakú databázu, ktorá bude slúžiť na uchovávanie údajov pre túto Laravel aplikáciu.
Mám vytvorenú na lokálnom MySQL servri databázu s názvom "test". Na túto databázu je potrebné sa napojiť s našou Laravel aplikáciou.
Urobí sa to jednoducho, nastavením potrebných údajov do konfiguračného súboru ".env" v aplikácii:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=
prístupový účet k databáze je "root" a heslo nie je nastavené žiadne.
Je potrebné mať teraz spustený tento MySQL server - ja ho mám v rámci zinštalovaného "WAMP servra", takže ak spustím "WAMP server" spustí sa mi automaticky aj MySQL server. Overím si to spustením prehliadača s URL:
http://localhost/phpmyadmin/index.php
čo mi zobrazí:
po prihlásení (zalogovaní) sa dostanem na utilitu "PHPMyAdmin", kde vidím aj aktuálne vytvorené databázy.
Teraz je čas zinštalovať do Laravel aplikácie package "Jetstream", ktorý rieši autentifikáciu používateľa (tj.registráciu, prihlásenie a odhlásenie).
Na inštaláciu package-u je potrebné mať zinštalovaný nastroj "Composer", ak ho máme spustiť (v adresári našej Laravel aplikácie) príkaz:
composer require laravel/jetstream
Následne spustiť príkaz, kde nastaviť inštaláciu stack-u "livewire" pre frontend (je založený na známej Laravel technológii "blade"), a tiež ak chceme rozšírenie "teams", ktorým možno priradzovať používateľov do skupín (teamov), použiť syntax príkazu:
php artisan jetstream:install livewire --teams
Nakoniec dokončiť túto inštaláciu príkazom:
npm run build
V prípade ak chýba utilita "npm" (manažér package-ov), tak ešte predtým spustiť jeho inštaláciu, príkazom:
npm install
Inštalácia package-u "Jetstream" vytvorila aj migračné skripty, ktoré služia na vytvorenie potrebných databázových tabuliek.
Spustiť vykonanie týchto migračných skriptov (podmienkou na úspešné vykonanie je, že je potrebné mať už predtým spustený MySQL server - viď info vyššie a musíme mať v MySQL vytvorenú požadovanú databázu - viď tiež info vyššie, a samozrejme musíme mať túto Laravel aplikáciu napojenú, cez konfiguračný súbor ".env" na túto databázu), vykonať príkazom (je to štandartný príkaz pre Laravel, ktorým zbehneme migračné skripty):
php artisan migrate
Poznámka:
V prípade ak nám spustenie týchto skriptov vypisujú nejakú takúto chybu:
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes
je potrebné urobiť drobnú úpravu v súbore (v adresári tejto Laravel aplikácie) "\app\Providers\AppServiceProvider.php":
...
use Illuminate\Support\Facades\Schema;
...
public function boot() {
Schema::defaultStringLength(191);
}
...
Ak vypísalo túto chybu, vymazať z databázy skriptami vytvorené db-tabuľky, urobiť túto úpravu a znovu spustiť príkaz na migráciu (viď vyššie).
Vo výsledku (po úspešnom zbehnutí migrácie) by mali byť v databáze vytvorené nasledujúce db-tabuľky:
failed_jobs
migrations
password_resets
personal_access_tokens
sessions
team_invitations
team_user
users
Teraz si spustiť (v adresári tejto Laravel aplikácie, cez "DOS Prompt" developovací server, príkazom:
php artisan serve
a v prehliadači si spustiť adresu/URL:
http://localhost:8000/
čo zobrazí domovskú stránku aplikácie:
kde sa už na domovskej stránke Laravel aplikácie zobrazia odkazy na prihlásenie a na registráciu používateľa.
Po kliknutí na "Login" (prihlásenie) sa presmeruje Laravel aplikácia na prihlasovací formulár:
http://127.0.0.1:8000/login
resp.po kliknutí na "Register" (registrácia nového používateľa) sa presmeruje na registračný formulár:
http://127.0.0.1:8000/register
Takto viem zaregistrovať nového používateľa a potom sa pod jeho účtom prihlásiť do Laravel aplikácie a dostanem sa na demo stránku "Dashboard", ktorú má prístupnú iba úspešne prihlásený používateľ.
...
Top comments (0)