{"id":24557,"date":"2021-05-21T12:33:00","date_gmt":"2021-05-21T09:33:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24557"},"modified":"2021-10-17T20:47:10","modified_gmt":"2021-10-17T17:47:10","slug":"kayttajarekisterointi-ja-kirjautumisjarjestelma-laravelissa","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/kayttajarekisterointi-ja-kirjautumisjarjestelma-laravelissa\/","title":{"rendered":"K\u00e4ytt\u00e4j\u00e4rekister\u00f6inti- ja kirjautumisj\u00e4rjestelm\u00e4 Laravelissa"},"content":{"rendered":"<p>Laravel tarjoaa sis\u00e4\u00e4nrakennetun k\u00e4ytt\u00e4j\u00e4n rekister\u00f6inti- ja kirjautumisj\u00e4rjestelm\u00e4n. Suurin osa kehitt\u00e4jist\u00e4 ei ole tietoinen t\u00e4st\u00e4 sis\u00e4\u00e4nrakennetusta j\u00e4rjestelm\u00e4st\u00e4 (olin my\u00f6s yksi heist\u00e4). Kun sain tiet\u00e4\u00e4 t\u00e4st\u00e4 ominaisuudesta, olin yll\u00e4ttynyt. Se s\u00e4\u00e4st\u00e4\u00e4 paljon aikaa kirjautumis- ja rekister\u00f6intij\u00e4rjestelm\u00e4n rakentamisesta tyhj\u00e4st\u00e4.<\/p>\n<p>T\u00e4ss\u00e4 artikkelissa tutkitaan k\u00e4ytt\u00e4jien rekister\u00f6inti- ja kirjautumisj\u00e4rjestelm\u00e4\u00e4 Laravelissa &#8211; Laravelin itse tarjoama sis\u00e4\u00e4nrakennettu ominaisuus.<\/p>\n<p>Kuten me kaikki tied\u00e4mme, sis\u00e4\u00e4nkirjautumis- ja rekister\u00f6intiprosessin virta on alle, mik\u00e4 yleens\u00e4 on integroitava.<\/p>\n<ul>\n<li>K\u00e4ytt\u00e4j\u00e4 luo tilin<\/li>\n<li>Vahvistuslinkki l\u00e4hetet\u00e4\u00e4n k\u00e4ytt\u00e4j\u00e4n s\u00e4hk\u00f6postiosoitteeseen<\/li>\n<li>Kun k\u00e4ytt\u00e4j\u00e4 napsauttaa vahvistuslinkki\u00e4, h\u00e4n aktivoituu j\u00e4rjestelm\u00e4ss\u00e4si.<\/li>\n<li>K\u00e4ytt\u00e4j\u00e4 kirjautuu verkkosivustollesi ja p\u00e4\u00e4see sivuille<\/li>\n<\/ul>\n<p>Kaikki yll\u00e4 olevat vaiheet k\u00e4sitell\u00e4\u00e4n Laravelissa. Sinun ei tarvitse kirjoittaa koodia t\u00e4m\u00e4n k\u00e4ytt\u00e4j\u00e4n luomisj\u00e4rjestelm\u00e4n rakentamiseksi.<\/p>\n<p>T\u00e4m\u00e4n sanottuaan katsotaanpa k\u00e4ytt\u00e4jien rekister\u00f6inti- ja kirjautumisj\u00e4rjestelm\u00e4\u00e4 Laravelissa<\/p>\n<h3>P\u00e4\u00e4st\u00e4 alkuun<\/h3>\n<p>Aloittamiseksi sinun on oltava valmis Laravel-projektiin. Jos sinulla ei ole sit\u00e4, luo se suorittamalla komento:<\/p>\n<pre><code>composer create-project --prefer-dist laravel\/laravel laravel-dev<\/code><\/pre>\n<p>T\u00e4ss\u00e4 &#8217;laravel-dev&#8217; on Laravel-projektin nimi. K\u00e4ytt\u00e4j\u00e4 voi muuttaa t\u00e4t\u00e4 nime\u00e4.<\/p>\n<p>Seuraavaksi sinun on integroitava Laravel-todennus. Siirry p\u00e4\u00e4telaitteen projektin juurihakemistoon ja suorita seuraavat komennot yksi kerrallaan:<\/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>N\u00e4m\u00e4 komennot luovat autentikointi ohjaimia kuten <code>LoginController.php<\/code>, <code>RegisterController.php<\/code>jne josta l\u00f6yd\u00e4t ett\u00e4 <code>app\/Http\/Controllers\/Auth<\/code>hakemistoon. Se luo my\u00f6s n\u00e4kymi\u00e4 <code>login.blade.php<\/code>, <code>register.blade.php<\/code>alle <code>resources\/view\/auth<\/code>hakemistoon.<\/p>\n<p>Yll\u00e4 olevat komennot my\u00f6s luovat <code>app.blade.php<\/code>tiedoston <code>resources\/views\/layouts<\/code>hakemistoon. T\u00e4m\u00e4 n\u00e4kym\u00e4 on sovelluksen perusta. Se k\u00e4ytt\u00e4\u00e4 Bootstrap CSS -kehyst\u00e4, mutta k\u00e4ytt\u00e4j\u00e4 voi muokata sit\u00e4 ja muuttaa suunnittelua.<\/p>\n<p>Suorita siirtokomento, joka luo tietokantaan &#8221; k\u00e4ytt\u00e4j\u00e4taulukon &#8221;.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>Nyt jos suoritat Laravel-projektin selaimella, n\u00e4et kirjautumis- ja rekister\u00f6intilomakkeen linkit.<\/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=\"K\u00e4ytt\u00e4j\u00e4rekister\u00f6inti- ja kirjautumisj\u00e4rjestelm\u00e4 Laravelissa\" ><\/a><\/p>\n<p>T\u00e4ss\u00e4 vaiheessa k\u00e4ytt\u00e4j\u00e4t voivat luoda tilins\u00e4 ja kirjautua sis\u00e4\u00e4n verkkosivustolle. Mutta kuten edell\u00e4 mainitsin, ennen kuin k\u00e4ytt\u00e4j\u00e4 voi k\u00e4ytt\u00e4\u00e4 j\u00e4rjestelm\u00e4\u00e4, h\u00e4nen olisi pit\u00e4nyt vahvistaa tilins\u00e4.<\/p>\n<p>Seuraavassa vaiheessa n\u00e4emme, kuinka k\u00e4ytt\u00e4j\u00e4n s\u00e4hk\u00f6postivahvistus suoritetaan.<\/p>\n<h3>s\u00e4hk\u00f6postivarmistus<\/h3>\n<p>Rekister\u00f6intij\u00e4rjestelm\u00e4\u00e4 rakennettaessa l\u00e4het\u00e4t k\u00e4ytt\u00e4jille aktivointilinkin rekister\u00f6innin yhteydess\u00e4. T\u00e4t\u00e4 aktivointilinkki\u00e4 k\u00e4ytet\u00e4\u00e4n k\u00e4ytt\u00e4j\u00e4tilin vahvistamiseen. Kun k\u00e4ytt\u00e4j\u00e4 napsauttaa aktivointilinkki\u00e4, teemme kyseisen k\u00e4ytt\u00e4j\u00e4n aktiiviseksi. Toisin sanoen tarkistettuaan tilin k\u00e4ytt\u00e4j\u00e4 voi selata sovelluksesi sivuja.<\/p>\n<p>Laravel tarjoaa sis\u00e4\u00e4nrakennetun j\u00e4rjestelm\u00e4n s\u00e4hk\u00f6postivahvistusprosessista vasta rekister\u00f6idylle k\u00e4ytt\u00e4j\u00e4lle. Rekister\u00f6itynyt k\u00e4ytt\u00e4j\u00e4 saa t\u00e4t\u00e4 j\u00e4rjestelm\u00e4\u00e4 k\u00e4ytt\u00e4m\u00e4ll\u00e4 s\u00e4hk\u00f6postin, jossa on aktivointilinkki. Kun tili on aktivoitu, k\u00e4ytt\u00e4j\u00e4 voi k\u00e4ytt\u00e4\u00e4 j\u00e4rjestelm\u00e4\u00e4.<\/p>\n<p>Avaa <code>AppUser.php<\/code>tiedosto ja varmista, ett\u00e4 K\u00e4ytt\u00e4j\u00e4-malli toteuttaa <code>IlluminateContractsAuthMustVerifyEmail<\/code>sopimuksen.<\/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>Kuinka se toimii? Jos tarkistat siirtotiedoston, k\u00e4ytt\u00e4jien taulukossa on <code>email_verified_at<\/code>sarake. T\u00e4t\u00e4 saraketta k\u00e4ytet\u00e4\u00e4n tarkistamaan, onko k\u00e4ytt\u00e4j\u00e4 aktivoinut tilins\u00e4. Jos tili on aktivoitu, t\u00e4ss\u00e4 sarakkeessa tulisi olla aktivointip\u00e4iv\u00e4 ja -aika.<\/p>\n<p>Kun suoritat todennuskomennon, se luo <code>AuthVerificationController<\/code>luokan, johon on kirjoitettu logiikka l\u00e4hett\u00e4m\u00e4\u00e4n vahvistuslinkkej\u00e4 ja vahvistamaan s\u00e4hk\u00f6posteja. Kehitt\u00e4j\u00e4 voi tarkistaa t\u00e4m\u00e4n tiedoston. Rekister\u00f6i tarvittavat reitit t\u00e4lle ohjaimelle kirjoittamalla alla olevat reitit <code>routes\/web.php<\/code>tiedostoon.<\/p>\n<pre><code>Auth::routes(['verify' =&gt; true]);<\/code><\/pre>\n<p>K\u00e4ytt\u00e4j\u00e4 voi suojata reittej\u00e4, joiden tulisi olla kirjautumisen takana. Reittien suojaamiseksi sinun on haettava <code>middleware('verified')<\/code>kyseisi\u00e4 reittej\u00e4. T\u00e4m\u00e4n j\u00e4lkeen n\u00e4ihin suojattuihin reitteihin p\u00e4\u00e4see vain vahvistetuilla tileill\u00e4.<\/p>\n<p>Voit kirjoittaa koodin reitin suojaamiseksi seuraavasti:<\/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>Jos haluat hallita k\u00e4ytt\u00e4j\u00e4n uudelleenohjausta vahvistuksen j\u00e4lkeen, avaa <code>AuthVerificationController<\/code>tiedosto. Tiedostossa on muuttuja, <code>$redirectTo<\/code>jota k\u00e4ytet\u00e4\u00e4n uudelleenohjaukseen. Muuta t\u00e4t\u00e4 reitti\u00e4 vaatimuksesi mukaan.<\/p>\n<pre><code>protected $redirectTo = '\/home';<\/code><\/pre>\n<h3>K\u00e4ytt\u00e4jien sis\u00e4\u00e4nkirjautuminen ja rekister\u00f6inti<\/h3>\n<p>Olet nyt valmis testaamaan k\u00e4ytt\u00e4j\u00e4n kirjautumis- ja rekister\u00f6intij\u00e4rjestelm\u00e4\u00e4. Koska k\u00e4sittelemme kirjautumisprosessia, j\u00e4rjestelm\u00e4n pit\u00e4isi pysty\u00e4 l\u00e4hett\u00e4m\u00e4\u00e4n s\u00e4hk\u00f6postia. Voit k\u00e4ytt\u00e4\u00e4 Gmailin SMTP-palvelinta s\u00e4hk\u00f6postiviestien l\u00e4hett\u00e4miseen. Lis\u00e4tietoja on artikkelissamme <a href=\"https:\/\/themewp.inform.click\/fi\/sahkopostin-lahettaminen-gmail-smtp-palvelimen-kautta-laravelissa\/\" title=\"S\u00e4hk\u00f6postin l\u00e4hett\u00e4minen Gmail SMTP -palvelimen kautta Laravelissa\" >S\u00e4hk\u00f6postin l\u00e4hett\u00e4minen Gmail SMTP -palvelimen kautta Laravelissa<\/a>.<\/p>\n<p>K\u00e4ynnist\u00e4 paikallinen kehityspalvelin komennolla:<\/p>\n<pre><code>php artisan serve<\/code><\/pre>\n<p>Luo k\u00e4ytt\u00e4j\u00e4n tili rekister\u00f6intisivulla t\u00e4\u00e4lt\u00e4 &#8211; <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=\"K\u00e4ytt\u00e4j\u00e4rekister\u00f6inti- ja kirjautumisj\u00e4rjestelm\u00e4 Laravelissa\" ><\/a><\/p>\n<p>Kun l\u00e4het\u00e4t lomakkeen, saat vahvistuslinkin s\u00e4hk\u00f6postiisi seuraavasti:<\/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=\"K\u00e4ytt\u00e4j\u00e4rekister\u00f6inti- ja kirjautumisj\u00e4rjestelm\u00e4 Laravelissa\" ><\/a><\/p>\n<p>Huomaa, ett\u00e4 Laravel antaa sinun kirjautua tilillesi, vaikka et ole viel\u00e4 vahvistanut tili\u00e4. Mutta et p\u00e4\u00e4se suojatulle reitille.<\/p>\n<p>Olen lis\u00e4nnyt reitille v\u00e4liohjelman <code>profile<\/code>. Vahvistamatta tili\u00e4 yrit\u00e4t k\u00e4yd\u00e4 <a href=\"http:\/\/localhost:8000\/profile\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http: \/\/ localhost: 8000 \/ profile<\/a> -sivulla, se ohjaa osoitteeseen <a href=\"http:\/\/localhost:8000\/email\/verify\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http: \/\/ localhost: 8000 \/ email \/ verif<\/a> URL.<\/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=\"K\u00e4ytt\u00e4j\u00e4rekister\u00f6inti- ja kirjautumisj\u00e4rjestelm\u00e4 Laravelissa\" ><\/a><\/p>\n<p>Vahvista tilisi. Tarkista tietokannan k\u00e4ytt\u00e4jien taulukko ja n\u00e4et <code>email_verified_at<\/code>sarakkeen t\u00e4ytt\u00e4v\u00e4n aktivointip\u00e4iv\u00e4n ja -ajan. Se tarkoittaa, ett\u00e4 olet vahvistanut tilisi onnistuneesti. Nyt sinun on voitava k\u00e4ytt\u00e4\u00e4 suojattuja reittej\u00e4.<\/p>\n<p>Toivon, ett\u00e4 ymm\u00e4rr\u00e4t kuinka rekister\u00f6id\u00e4 ja kirjaudu sis\u00e4\u00e4n Laravelissa. Ole hyv\u00e4 ja jaa ajatuksiasi ja ehdotuksiasi alla olevassa kommentissa.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/authorize-net-payment-gateway-integraatio-laravelissa\/\" title=\"Authorize.Net Payment Gateway -integraatio Laravelissa\">Authorize.Net Payment Gateway -integraatio Laravelissa<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-luoda-blogi-laravelin-kanssa\/\" title=\"Kuinka luoda blogi Laravelin kanssa\">Kuinka luoda blogi Laravelin kanssa<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-luoda-honeypot-taistelulomakkeen-roskapostia-vastaan-laravelissa\/\" title=\"Kuinka luoda Honeypot taistelulomakkeen roskapostia vastaan \u200b\u200bLaravelissa\">Kuinka luoda Honeypot taistelulomakkeen roskapostia vastaan \u200b\u200bLaravelissa<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4ss\u00e4 artikkelissa tutkitaan k\u00e4ytt\u00e4jien rekister\u00f6inti\u00e4 ja kirjautumisj\u00e4rjestelm\u00e4\u00e4 Laravelissa. Laravel toimittaa t\u00e4m\u00e4n j\u00e4rjestelm\u00e4n asennukseen. Meid\u00e4n on vain jatkettava t\u00e4t\u00e4<\/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":[499],"tags":[843],"class_list":["post-24557","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=24557"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24557\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/22293"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=24557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=24557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=24557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}