✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak wysłać e-mail aktywacyjny w Laravel po rejestracji użytkownika?

21

Laravel jest wyposażony w przepływ uwierzytelniania, gdy go instalujemy. Obejmuje logowanie, rejestrację, przepływ zapomnianego hasła w samym rdzeniu Laravel. Korzystając z tego wbudowanego przepływu, po zarejestrowaniu użytkownik uzyskuje bezpośredni dostęp do systemu. Ale co, jeśli ktoś chce wysłać e-mailowy kod weryfikacyjny przed zezwoleniem użytkownikowi na korzystanie z aplikacji. W tym artykule dowiemy się, jak wysłać e-mail aktywacyjny w Laravel.

Wyślemy użytkownikowi wiadomość e-mail z potwierdzeniem. Gdy użytkownik kliknie w link weryfikacyjny przesłany w wiadomości e-mail, tylko on będzie mógł korzystać z systemu.

Pierwsze kroki

Aby rozpocząć, najpierw instalujemy pakiet w naszym projekcie Laravel. Otwórz terminal w katalogu głównym projektu i uruchom polecenie:

composer require beyondcode/laravel-confirm-email

Ten pakiet, który dodaje weryfikację e-mail do twoich projektów Laravel.

Po zainstalowaniu pakietu powinniśmy uruchomić polecenie, aby opublikować migrację i plik konfiguracyjny.

php artisan vendor:publish --provider=BeyondCodeEmailConfirmationEmailConfirmationServiceProvider

W userstabeli ten pakiet dodaje dwie kolumny confirmed_ati confirmation_code. Uruchommy polecenie migracji, aby dodać te kolumny.

php artisan migrate

Konfiguracja

Aby wysłać e-mail aktywacyjny, musimy zamienić AuthenticatesUsers, RegistersUsersa SendsPasswordResetEmailscechy na te, które zapewnia ten pakiet.

Najpierw otwórz poniższe pliki w swoim edytorze, a następnie zastąpimy cechy jeden po drugim.

  • appHttpControllersAuthLoginController.php
  • appHttpControllersAuthRegisterController.php
  • appHttpControllersAuthForgotPasswordController.php

Z powyższych plików zastąp oświadczenia

  • use IlluminateFoundationAuthAuthenticatesUsers;
  • use IlluminateFoundationAuthRegistersUsers;
  • use IlluminateFoundationAuthSendsPasswordResetEmails;

Z

  • use BeyondCodeEmailConfirmationTraitsAuthenticatesUsers;
  • use BeyondCodeEmailConfirmationTraitsRegistersUsers;
  • use BeyondCodeEmailConfirmationTraitsSendsPasswordResetEmails;

Ponieważ wysyłamy link weryfikacyjny w e-mailu aktywacyjnym, dodaj następujące dwie trasy w routes/web.phppliku.

Route::name('auth.resend_confirmation')->get('/register/confirm/resend', 'AuthRegisterController@resendConfirmation');
Route::name('auth.confirm')->get('/register/confirm/{confirmation_code}', 'AuthRegisterController@confirm');

Gdy użytkownik kliknie łącze weryfikacyjne, ten pakiet dodaje wiadomości flash, które zawierają komunikat o błędzie/informację dla użytkowników. Aby wyświetlić tę wiadomość flash użytkownikom, dodaj poniższy kod w 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
.....

Musimy również dodać poniższy kod w resourcesviewsauthpasswordsemail.blade.php

.....
<div class="panel-body">
    @if ($errors->has('confirmation') > 0)         <div class="alert alert-danger" role="alert">
            {!! $errors->first('confirmation') !!}
        </div>
    @endif
.....

Otóż ​​to! Teraz, gdy użytkownik dokona rejestracji w Twojej witrynie, otrzyma e-mail aktywacyjny, aby potwierdzić swoje konto. Podziel się swoimi przemyśleniami w sekcji komentarzy poniżej.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów