Jak stworzyć system autoryzacji użytkowników w Laravelu w 3 minuty?

by admin 4 Comments
Jak stworzyć system autoryzacji użytkowników w Laravelu w 3 minuty?

Zastanawialiście się jak szybko można wygenerować system autoryzacji użytkowników włączając system logowania, rejestracji oraz resetu hasła. W Laravelu można to wykonać za pomocą 7 komend bez pisania kodu. Mówię o bardzo prostym systemie autoryzacji używając Laravel Auth.

Tworzenie projektu

W tej serii wpisów będę wykonywał inny projekt. Będę tworzył prostą aplikację 10 ideas, czyli wypisujemy 10 pomysłów na coś. Np. 10 sposobów jak efektywnie uczyć się programowania i 10 wypisujemy rzeczy na tej liście. Więc zacznijmy od stworzenia nowego projektu.

Pierwszą rzeczą jaką musimy zrobić jest oczywiście wygenerowanie struktury katalogów, możemy to zrobić następującą komendą:

composer create-project --prefer-dist laravel/laravel 10ideas

W ten sposób utworzymy katalog 10ideas, gdzie będzie znajdował się nasz cały projekt.

Kolejną rzeczą jest skonfigurowanie swojej bazy danych. Możemy to w pliku .env gdzie podajemy parametry do naszej bazy danych, którą wcześniej utworzyliśmy:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=10ideas
DB_USERNAME=root
DB_PASSWORD=

W ścieżce naszego projektu database/migrations znajdują się nasze migracje do bazy danych, czyli polecenia do modyfikacji bazy danych. Obecnie nasza baza danych jest pusta, więc stwórzmy w niej m.in. tabelę users, gdzie będziemy przechowywać dane o użytkownikach. Strukturę możesz znaleźć w pliku database/migrations/2014_10_12_000000_create_users_table.php. Wykonajmy migrację poleceniem:

php artisan migrate

Powinniśmy otrzymać informację że nasza migracja powiodła się:

Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (50.93ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (60.84ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (42.80ms)

Budujemy system autoryzacji

Metod Autoryzacyjnych użytkownika w Laravelu jest wiele m.in. Laravel Passport, JTW, czy nowy Jetstream lub Sanctrum . Więcej możesz w dokumentacji Laravela. Ostatnio Laravel zaczął wspierać Tailwind.css, my wykorzystamy Vue.js do naszego projektu, gdzie wykorzystamy go do zbudowania Single Page Application. Dlatego wykorzystamy zależność Laravel/UI. Zainstalujemy ją za pomocą polecenia:

composer require laravel/ui

Kolejną rzeczą będzie wygenerowanie szkieletu autoryzacji użytkownika. W tym celu posłużymy się poleceniem:

php artisan ui vue --auth

To polecenie wygeneruje nam interfejs autoryzacyjny użytkownika. Dodatkowo możemy zainstalować zależności frontendowe do projektu może np. Bootstrap, React lub Vue.

Przedostatnią rzeczą jaką musimy zrobić jest zainstalowanie zależności NPM-a w projekcie z pliku package.json. W tym celu wykonajmy polecenie:

npm install 

Sama instalacja nie wystarczy, jeszcze musimy skompilować nasz kod:

npm run dev

Polecenie to pozwoli nam skompilować kod w trybie developerskim.

Uruchommy naszą aplikację i sprawdźmy czy działa poprawnie. Możemy to wykonać poleceniem:

php artisan serve

W nowym Laravelu 8 powinniśmy ujrzeć poniższe okno startowe:

laravel8 ekran startowy

Trochę ekran powitalny się zmienił od ostatniej wersji, wydaje mi się że na plus. Pod adresem: http://127.0.0.1:8000/register możemy założyć konto w aplikacji. Jeśli wypełniliśmy poprawnie formularz powinniśmy ujrzeć okno że poprawnie zostaliśmy zalogowani do aplikacji:

Podsumowanie

Jak widzisz za pomocą 7 komend, bez kodowania jesteś w stanie w mniej niż 3 minuty. Jest to dosyć szybki i przyjemny sposób. Jak widzisz Laravel nie jest trudny, a wiele rzeczy upraszcza. Pamiętam kiedyś kilka lat temu, gdy nie znałem Laravela, prosty system autoryzacji użytkownika w czystym PHP + HTML, zajmował mi około 2h.

Przydatne linki:

Comments ( 4 )

  1. B
    Fajna rzecz dla początkujących. Btw - może warto użyć konkretnej wersji larvy bo dzięki temu tutek będzie dłużej aktualny? Swoją drogą nie jestem pewien, czy podoba mi się pchanie jsa do tych formularzy rejestracyjnych bo nie każdy hosting obsługuje noda. Sam się na to naciąłem więc przez to teraz psioczę :)
    • admin
      Ten system autoryzacji jest dostępny dla wersji laravela 6,7,8. Nie widzę sensu na razie dopisywać dla której wersji frameworka wpis jest aktualny. Zawsze możesz skompilować Jsa po swojej stronie i node wsparcie node, nie będzie ci potrzebne
  2. Daniel
    Dzięki za Twoje wpisy, są bardzo pomocne przy nauce Laravela. Oby pojawiały się z większą częstotliwością :)
    • admin
      Dzięki za miłe słowa, posty pojawiają się co 2 tygodnie :)

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>