Kuinka lähettää aktivointisähköposti Laravelissa käyttäjän rekisteröinnin jälkeen
Laravel mukana tulee todennusvirta, kun asennamme sen. Se sisältää kirjautumisen, rekisteröinnin, unohtanut salasanavirran itse Laravel-ytimessä. Käyttämällä tätä sisäänrakennettua kulkua käyttäjärekisteröityessään he pääsevät suoraan järjestelmään. Mutta entä jos joku haluaa lähettää vahvistuskoodin sähköpostitse ennen kuin antaa käyttäjän käyttää sovellusta. Tässä artikkelissa tutkitaan aktivointisähköpostin lähettämistä Laravelissa.
Lähetämme vahvistusviestin käyttäjälle. Kun käyttäjä napsauttaa sähköpostitse lähetettyä vahvistuslinkkiä, vain hän voi käyttää järjestelmää.
Päästä alkuun
Aloittamiseksi asennamme paketin ensin Laravel-projektiimme. Avaa pääte projektin juurihakemistossa ja suorita komento:
composer require beyondcode/laravel-confirm-email
Tämä paketti, joka lisää sähköpostivahvistuksen Laravel-projekteihisi.
Paketin asentamisen jälkeen meidän pitäisi suorittaa komento julkaisemaan siirto ja määritystiedosto.
php artisan vendor:publish --provider=BeyondCodeEmailConfirmationEmailConfirmationServiceProvider
Vuonna users
taulukossa, tämä paketti lisätä kaksi saraketta confirmed_at
ja confirmation_code
. Suoritetaan siirtokomento näiden sarakkeiden lisäämiseksi.
php artisan migrate
Kokoonpano
Lähettämään aktivointi sähköposti meidän on korvattava AuthenticatesUsers
, RegistersUsers
ja SendsPasswordResetEmails
piirteitä, joilla ne antanut tämä paketti.
Avaa ensin alla olevat tiedostot editorissasi, sitten vaihdamme piirteet yksi kerrallaan.
- appHttpControllersAuthLoginController.php
- appHttpControllersAuthRegisterController.php
- appHttpControllersAuthForgotPasswordController.php
Korvaa lauseet yllä olevista tiedostoista
use IlluminateFoundationAuthAuthenticatesUsers;
use IlluminateFoundationAuthRegistersUsers;
use IlluminateFoundationAuthSendsPasswordResetEmails;
Kanssa
use BeyondCodeEmailConfirmationTraitsAuthenticatesUsers;
use BeyondCodeEmailConfirmationTraitsRegistersUsers;
use BeyondCodeEmailConfirmationTraitsSendsPasswordResetEmails;
Kun lähetämme vahvistuslinkkiä aktivointisähköpostissa, lisää seuraavat kaksi reittiä routes/web.php
tiedostoon.
Route::name('auth.resend_confirmation')->get('/register/confirm/resend', 'AuthRegisterController@resendConfirmation');
Route::name('auth.confirm')->get('/register/confirm/{confirmation_code}', 'AuthRegisterController@confirm');
Kun käyttäjä napsauttaa vahvistuslinkkiä, tämä paketti lisää flash-viestejä, jotka sisältävät virhe- / tietoviestin käyttäjille. Jos haluat näyttää tämän flash-viestin käyttäjille, lisää koodi alla olevaan koodiin resourcesviewsauthlogin.blade.php
.
.....
<div class="panel-body">
@if (session('confirmation'))
<div class="alert alert-info" role="alert">
{!! session('confirmation') !!}
</div>
@endif
@if ($errors->has('confirmation') > 0) <div class="alert alert-danger" role="alert">
{!! $errors->first('confirmation') !!}
</div>
@endif
.....
Meidän on myös lisättävä koodi alle resourcesviewsauthpasswordsemail.blade.php
.....
<div class="panel-body">
@if ($errors->has('confirmation') > 0) <div class="alert alert-danger" role="alert">
{!! $errors->first('confirmation') !!}
</div>
@endif
.....
Se siitä! Nyt kun käyttäjä tekee rekisteröinnin verkkosivustollesi, hän saa aktivointisähköpostin vahvistaakseen tilinsä. Jaa ajatuksesi alla olevassa kommenttiosassa.