{"id":28142,"date":"2021-05-21T11:59:00","date_gmt":"2021-05-21T08:59:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28142"},"modified":"2021-10-18T03:43:23","modified_gmt":"2021-10-18T00:43:23","slug":"system-rejestracji-i-logowania-uzytkownika-w-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/system-rejestracji-i-logowania-uzytkownika-w-laravel\/","title":{"rendered":"System rejestracji i logowania u\u017cytkownika w Laravel"},"content":{"rendered":"<p>Laravel zapewnia wbudowany system rejestracji i logowania u\u017cytkownik\u00f3w. Wi\u0119kszo\u015b\u0107 programist\u00f3w nie zdaje sobie sprawy z tego wbudowanego systemu (ja te\u017c by\u0142em jednym z nich). Kiedy dowiedzia\u0142em si\u0119 o tej funkcji, by\u0142em zaskoczony. Oszcz\u0119dza to du\u017co czasu na zbudowaniu od podstaw systemu logowania i rejestracji.<\/p>\n<p>W tym artykule przyjrzymy si\u0119 systemowi rejestracji i logowania u\u017cytkownik\u00f3w w Laravel \u2013 wbudowanej funkcji dostarczanej przez sam Laravel.<\/p>\n<p>Jak wszyscy wiemy proces logowania i rejestracji przebiega poni\u017cej przep\u0142ywu, kt\u00f3ry zwykle wymaga integracji.<\/p>\n<ul>\n<li>U\u017cytkownik tworzy konto<\/li>\n<li>Link potwierdzaj\u0105cy zostanie wys\u0142any na adres e-mail u\u017cytkownika<\/li>\n<li>Gdy u\u017cytkownik kliknie link potwierdzaj\u0105cy, zostanie aktywowany w twoim systemie.<\/li>\n<li>U\u017cytkownik loguje si\u0119 do Twojej witryny i mo\u017ce uzyska\u0107 dost\u0119p do stron<\/li>\n<\/ul>\n<p>Wszystkie powy\u017csze kroki zosta\u0142y om\u00f3wione w Laravelu. Nie musisz pisa\u0107 kodu, aby zbudowa\u0107 ten system tworzenia u\u017cytkownik\u00f3w.<\/p>\n<p>To powiedziawszy, przyjrzyjmy si\u0119 systemowi rejestracji i logowania u\u017cytkownik\u00f3w w Laravel<\/p>\n<h3>Pierwsze kroki<\/h3>\n<p>Aby rozpocz\u0105\u0107, powiniene\u015b by\u0107 gotowy z projektem Laravel. Je\u015bli go nie masz, utw\u00f3rz go, uruchamiaj\u0105c polecenie:<\/p>\n<pre><code>composer create-project --prefer-dist laravel\/laravel laravel-dev<\/code><\/pre>\n<p>Tutaj 'laravel-dev&#8217; to nazwa projektu Laravel. U\u017cytkownik mo\u017ce zmieni\u0107 t\u0119 nazw\u0119.<\/p>\n<p>Nast\u0119pnie musisz zintegrowa\u0107 uwierzytelnianie Laravel. Udaj si\u0119 do katalogu g\u0142\u00f3wnego projektu w terminalu i uruchom poni\u017csze polecenia jeden po drugim:<\/p>\n<pre><code>composer require laravel\/ui --dev\nphp artisan ui vue --auth\nnpm install &amp;&amp; npm run dev\n<\/code><\/pre>\n<p>Polecenia te stworzy kontrolery uwierzytelniania, takich jak <code>LoginController.php<\/code>, <code>RegisterController.php<\/code>itp, kt\u00f3re znajd\u0105 Pa\u0144stwo w <code>app\/Http\/Controllers\/Auth<\/code>katalogu. Tworzy r\u00f3wnie\u017c pogl\u0105dy <code>login.blade.php<\/code>, <code>register.blade.php<\/code>zgodnie z <code>resources\/view\/auth<\/code>katalogu.<\/p>\n<p>Powy\u017csze polecenia tworz\u0105 r\u00f3wnie\u017c <code>app.blade.php<\/code>plik w <code>resources\/views\/layouts<\/code>katalogu. Ten widok jest podstawowym uk\u0142adem aplikacji. Wykorzystuje framework Bootstrap CSS, ale u\u017cytkownik mo\u017ce go dostosowa\u0107 i zmieni\u0107 projekt.<\/p>\n<p>Uruchom polecenie migracji, kt\u00f3re utworzy tabel\u0119 \u201eusers&quot; w Twojej bazie danych.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>Teraz, je\u015bli uruchomisz projekt Laravel w przegl\u0105darce, zobaczysz linki do formularza logowania i rejestracji.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" alt=\"System rejestracji i logowania u\u017cytkownika w Laravel\" ><\/a><\/p>\n<p>Na tym etapie u\u017cytkownicy mog\u0105 za\u0142o\u017cy\u0107 swoje konto i zalogowa\u0107 si\u0119 do serwisu. Ale jak wspomnia\u0142em powy\u017cej, zanim u\u017cytkownik b\u0119dzie m\u00f3g\u0142 uzyska\u0107 dost\u0119p do systemu, powinien potwierdzi\u0107 swoje konto.<\/p>\n<p>W kolejnym kroku zobaczymy, jak przeprowadzi\u0107 proces weryfikacji adresu e-mail u\u017cytkownika.<\/p>\n<h3>Weryfikacja adresu e-mail<\/h3>\n<p>Buduj\u0105c system rejestracji, podczas rejestracji u\u017cytkownika wysy\u0142asz u\u017cytkownikom link aktywacyjny. Ten link aktywacyjny b\u0119dzie s\u0142u\u017cy\u0142 do weryfikacji konta u\u017cytkownika. Gdy u\u017cytkownik kliknie link aktywacyjny, aktywujemy go. Innymi s\u0142owy, po weryfikacji konta u\u017cytkownik mo\u017ce przegl\u0105da\u0107 strony Twojej aplikacji.<\/p>\n<p>Laravel zapewnia wbudowany system procesu weryfikacji adresu e-mail dla nowo zarejestrowanego u\u017cytkownika. Za pomoc\u0105 tego systemu zarejestrowany u\u017cytkownik otrzyma wiadomo\u015b\u0107 e-mail z linkiem aktywacyjnym. Po aktywacji konta u\u017cytkownik b\u0119dzie m\u00f3g\u0142 uzyska\u0107 dost\u0119p do systemu.<\/p>\n<p>Otw\u00f3rz <code>AppUser.php<\/code>plik i upewnij si\u0119, \u017ce model \u201eU\u017cytkownik&#8221; realizuje <code>IlluminateContractsAuthMustVerifyEmail<\/code>umow\u0119.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace App;\n\u00a0\nuse IlluminateContractsAuthMustVerifyEmail;\nuse IlluminateFoundationAuthUser as Authenticatable;\nuse IlluminateNotificationsNotifiable;\n\u00a0\nclass User extends Authenticatable implements MustVerifyEmail\n{\n\u00a0\u00a0\u00a0\u00a0...\n\u00a0\u00a0\u00a0\u00a0...\n}<\/code><\/pre>\n<p>Jak to dzia\u0142a? Je\u015bli sprawdzisz plik migracji, tabela \u201eu\u017cytkownicy&#8221; zawiera <code>email_verified_at<\/code>kolumn\u0119. Ta kolumna pos\u0142u\u017cy do sprawdzenia, czy u\u017cytkownik aktywowa\u0142 swoje konto, czy nie. Je\u015bli konto jest aktywowane, w tej kolumnie powinna znajdowa\u0107 si\u0119 data i godzina aktywacji.<\/p>\n<p>Po uruchomieniu polecenia uwierzytelniania tworzy <code>AuthVerificationController<\/code>klas\u0119, kt\u00f3ra ma napisan\u0105 logik\u0119 do wysy\u0142ania link\u00f3w weryfikacyjnych i weryfikacji wiadomo\u015bci e-mail. Deweloper mo\u017ce sprawdzi\u0107 ten plik. Aby zarejestrowa\u0107 niezb\u0119dne trasy dla tego kontrolera, zapisz w <code>routes\/web.php<\/code>pliku poni\u017csze trasy .<\/p>\n<pre><code>Auth::routes(['verify' =&gt; true]);<\/code><\/pre>\n<p>U\u017cytkownik mo\u017ce chroni\u0107 swoje trasy, kt\u00f3re powinny znajdowa\u0107 si\u0119 za logowaniem. Aby chroni\u0107 trasy, musisz zastosowa\u0107 si\u0119 <code>middleware('verified')<\/code>do tych tras. Nast\u0119pnie te chronione trasy b\u0119d\u0105 dost\u0119pne tylko dla zweryfikowanych kont.<\/p>\n<p>Mo\u017cesz napisa\u0107 kod chroni\u0105cy tras\u0119 w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<pre><code>Route::get('profile', function() {\n\u00a0\u00a0\u00a0\u00a0return '&lt;h1&gt;This is profile page&lt;\/h1&gt;';\n})-&gt;middleware('verified');<\/code><\/pre>\n<p>Je\u015bli chcesz mie\u0107 kontrol\u0119 nad tym, gdzie przekierowa\u0107 u\u017cytkownika po weryfikacji, otw\u00f3rz <code>AuthVerificationController<\/code>plik. Plik posiada zmienn\u0105, <code>$redirectTo<\/code>kt\u00f3rej u\u017cyje do przekierowania. Zmie\u0144 t\u0119 tras\u0119 zgodnie z wymaganiami.<\/p>\n<pre><code>protected $redirectTo = '\/home';<\/code><\/pre>\n<h3>Logowanie i rejestracja u\u017cytkownika<\/h3>\n<p>Jeste\u015b teraz gotowy do przetestowania systemu logowania i rejestracji u\u017cytkownik\u00f3w. Poniewa\u017c mamy do czynienia z procesem rejestracji, Tw\u00f3j system powinien by\u0107 w stanie wys\u0142a\u0107 wiadomo\u015b\u0107 e-mail. Do wysy\u0142ania e-maili mo\u017cesz u\u017cywa\u0107 serwera SMTP Gmaila. Aby uzyska\u0107 wi\u0119cej informacji, przeczytaj nasz artyku\u0142 <a href=\"https:\/\/themewp.inform.click\/pl\/wysylanie-wiadomosci-e-mail-przez-serwer-smtp-gmaila-w-laravel\/\" title=\"Wysy\u0142anie wiadomo\u015bci e-mail przez serwer SMTP Gmaila w Laravel\" >Wysy\u0142anie wiadomo\u015bci e-mail przez serwer SMTP Gmaila w Laravel<\/a>.<\/p>\n<p>Uruchom lokalny serwer programistyczny za pomoc\u0105 polecenia:<\/p>\n<pre><code>php artisan serve<\/code><\/pre>\n<p>Utw\u00f3rz konto u\u017cytkownika na stronie rejestracji tutaj \u2013 <a href=\"http:\/\/localhost:8000\/register\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http:\/\/localhost:8000\/register<\/a><\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" alt=\"System rejestracji i logowania u\u017cytkownika w Laravel\" ><\/a><\/p>\n<p>Po przes\u0142aniu formularza otrzymasz link weryfikacyjny na sw\u00f3j e-mail w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" alt=\"System rejestracji i logowania u\u017cytkownika w Laravel\" ><\/a><\/p>\n<p>Pami\u0119taj, \u017ce Laravel umo\u017cliwia zalogowanie si\u0119 na Twoje konto, nawet je\u015bli jeszcze go nie zweryfikowa\u0142e\u015b. Ale nie mo\u017cesz uzyska\u0107 dost\u0119pu do chronionej trasy.<\/p>\n<p>Doda\u0142em oprogramowanie po\u015brednicz\u0105ce dla trasy <code>profile<\/code>. Bez weryfikacji konta, je\u015bli spr\u00f3bujesz odwiedzi\u0107 stron\u0119 <a href=\"http:\/\/localhost:8000\/profile\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http:\/\/localhost:8000\/profile<\/a>, nast\u0105pi przekierowanie do adresu URL <a href=\"http:\/\/localhost:8000\/email\/verify\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http:\/\/localhost:8000\/email\/verify<\/a>.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" alt=\"System rejestracji i logowania u\u017cytkownika w Laravel\" ><\/a><\/p>\n<p>\u015amia\u0142o i zweryfikuj swoje konto. Sprawd\u017a tabel\u0119 \u201eu\u017cytkownicy&#8221; w bazie danych, a zobaczysz <code>email_verified_at<\/code>kolumn\u0119 wype\u0142nion\u0105 dat\u0105 i godzin\u0105 aktywacji. Oznacza to, \u017ce pomy\u015blnie zweryfikowa\u0142e\u015b swoje konto. Teraz powiniene\u015b mie\u0107 dost\u0119p do chronionych tras.<\/p>\n<p>Mam nadziej\u0119, \u017ce rozumiesz, jak korzysta\u0107 z systemu rejestracji i logowania u\u017cytkownik\u00f3w w Laravel. Podziel si\u0119 swoimi przemy\u015bleniami i sugestiami w poni\u017cszym komentarzu.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/integracja-bramki-platnosci-authorize-net-w-laravel\/\" title=\"Integracja bramki p\u0142atno\u015bci Authorize.Net w Laravel\">Integracja bramki p\u0142atno\u015bci Authorize.Net w Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-stworzyc-bloga-z-laravel\/\" title=\"Jak stworzy\u0107 bloga z Laravel\">Jak stworzy\u0107 bloga z Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-stworzyc-honeypota-do-walki-ze-spamem-formularzy-w-laravel\/\" title=\"Jak stworzy\u0107 Honeypota do walki ze spamem formularzy w Laravel?\">Jak stworzy\u0107 Honeypota do walki ze spamem formularzy w Laravel?<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym artykule przyjrzymy si\u0119 systemowi rejestracji i logowania u\u017cytkownik\u00f3w w Laravel. Laravel dostarcza ten system podczas instalacji. Musimy to tylko przed\u0142u\u017cy\u0107<\/p>\n","protected":false},"author":1,"featured_media":22293,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[501],"tags":[847],"class_list":["post-28142","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/28142","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=28142"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/28142\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/22293"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=28142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=28142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=28142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}