So senden Sie eine Aktivierungs-E-Mail in Laravel nach der Benutzerregistrierung
Laravel wird bei der Installation mit einem Authentifizierungsfluss geliefert. Es umfasst Anmeldung, Registrierung und den Fluss vergessener Passwörter im Laravel-Kern selbst. Mit diesem integrierten Ablauf erhalten Benutzer bei der Registrierung direkt Zugriff auf das System. Aber was ist, wenn jemand einen E-Mail-Bestätigungscode senden möchte, bevor er einem Benutzer die Verwendung der Anwendung gestattet. In diesem Artikel untersuchen wir, wie Sie eine Aktivierungs-E-Mail in Laravel senden.
Wir werden dem Benutzer eine Bestätigungs-E-Mail senden. Wenn ein Benutzer auf den in einer E-Mail gesendeten Bestätigungslink klickt, kann nur er das System verwenden.
Einstieg
Für den Einstieg installieren wir das Paket zunächst in unserem Laravel-Projekt. Öffnen Sie das Terminal in Ihrem Projekt-Root-Verzeichnis und führen Sie den Befehl aus:
composer require beyondcode/laravel-confirm-email
Dieses Paket, das Ihren Laravel-Projekten eine E-Mail-Verifizierung hinzufügt.
Nach der Installation des Pakets sollten wir einen Befehl ausführen, um die Migration und die Konfigurationsdatei zu veröffentlichen.
php artisan vendor:publish --provider=BeyondCodeEmailConfirmationEmailConfirmationServiceProvider
In der users
Tabelle fügt dieses Paket zwei Spalten confirmed_at
und hinzu confirmation_code
. Führen wir den Migrationsbefehl aus, um diese Spalten hinzuzufügen.
php artisan migrate
Aufbau
Um eine Aktivierungs-E-Mail zu senden, müssen wir AuthenticatesUsers
, RegistersUsers
und SendsPasswordResetEmails
Merkmale durch die von diesem Paket bereitgestellten ersetzen .
Öffnen Sie zuerst die folgenden Dateien in Ihrem Editor, dann ersetzen wir die Merkmale nacheinander.
- appHttpControllersAuthLoginController.php
- appHttpControllersAuthRegisterController.php
- appHttpControllersAuthForgotPasswordController.php
Ersetzen Sie aus den obigen Dateien die Anweisungen
use IlluminateFoundationAuthAuthenticatesUsers;
use IlluminateFoundationAuthRegistersUsers;
use IlluminateFoundationAuthSendsPasswordResetEmails;
Mit
use BeyondCodeEmailConfirmationTraitsAuthenticatesUsers;
use BeyondCodeEmailConfirmationTraitsRegistersUsers;
use BeyondCodeEmailConfirmationTraitsSendsPasswordResetEmails;
Da wir einen Bestätigungslink in einer Aktivierungs-E-Mail senden, fügen Sie die folgenden zwei Routen in eine routes/web.php
Datei ein.
Route::name('auth.resend_confirmation')->get('/register/confirm/resend', 'AuthRegisterController@resendConfirmation');
Route::name('auth.confirm')->get('/register/confirm/{confirmation_code}', 'AuthRegisterController@confirm');
Wenn ein Benutzer auf den Verifizierungslink klickt, fügt dieses Paket Flash-Nachrichten hinzu, die Fehler-/Informationsnachrichten für Benutzer enthalten. Um diese Flash-Nachricht für Benutzer anzuzeigen, fügen Sie den folgenden Code in die 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
.....
Wir müssen auch den folgenden Code in der. hinzufügen resourcesviewsauthpasswordsemail.blade.php
.....
<div class="panel-body">
@if ($errors->has('confirmation') > 0) <div class="alert alert-danger" role="alert">
{!! $errors->first('confirmation') !!}
</div>
@endif
.....
Das ist es! Wenn sich ein Benutzer jetzt auf Ihrer Website registriert, erhält er eine Aktivierungs-E-Mail, um sein Konto zu bestätigen. Bitte teilen Sie Ihre Gedanken im Kommentarbereich unten mit.
Zum Thema passende Artikel
- So verwenden Sie Laravel Passport für die REST-API-Authentifizierung
- So laden Sie eine Datei mit dem Laravel-Dateisystem auf S3 hoch