Comment envoyer un e-mail d’activation dans Laravel après l’enregistrement de l’utilisateur
Laravel est livré avec un flux d’authentification lorsque nous l’installons. Il comprend la connexion, l’enregistrement, le flux de mot de passe oublié dans le noyau Laravel lui-même. En utilisant ce flux intégré, lorsque l’utilisateur s’enregistre, il accède directement au système. Mais que se passe-t-il si quelqu’un souhaite envoyer un code de vérification par e-mail avant d’autoriser un utilisateur à utiliser l’application. Dans cet article, nous étudions comment envoyer un e-mail d’activation dans Laravel.
Nous allons envoyer un e-mail de confirmation à l’utilisateur. Lorsqu’un utilisateur clique sur le lien de vérification envoyé dans un e-mail, il est le seul à pouvoir utiliser le système.
Commencer
Pour commencer, nous installons d’abord le package dans notre projet Laravel. Ouvrez le terminal dans le répertoire racine de votre projet et exécutez la commande :
composer require beyondcode/laravel-confirm-email
Ce package qui ajoute une vérification par e-mail à vos projets Laravel.
Après avoir installé le package, nous devons exécuter une commande pour publier la migration et le fichier de configuration.
php artisan vendor:publish --provider=BeyondCodeEmailConfirmationEmailConfirmationServiceProvider
Dans le users
tableau, ce package ajoute deux colonnes confirmed_at
et confirmation_code
. Exécutons la commande de migration pour ajouter ces colonnes.
php artisan migrate
Configuration
Pour envoyer un e-mail d’activation, nous devons remplacer AuthenticatesUsers
, RegistersUsers
et SendsPasswordResetEmails
traits par ceux fournis par ce package.
Ouvrez d’abord les fichiers ci-dessous dans votre éditeur, puis nous remplaçons les traits un par un.
- appHttpControllersAuthLoginController.php
- appHttpControllersAuthRegisterController.php
- appHttpControllersAuthForgotPasswordController.php
A partir des fichiers ci-dessus, remplacez les déclarations
use IlluminateFoundationAuthAuthenticatesUsers;
use IlluminateFoundationAuthRegistersUsers;
use IlluminateFoundationAuthSendsPasswordResetEmails;
Avec
use BeyondCodeEmailConfirmationTraitsAuthenticatesUsers;
use BeyondCodeEmailConfirmationTraitsRegistersUsers;
use BeyondCodeEmailConfirmationTraitsSendsPasswordResetEmails;
Comme nous envoyons un lien de vérification dans un e-mail d’activation, ajoutez les deux itinéraires suivants dans un routes/web.php
fichier.
Route::name('auth.resend_confirmation')->get('/register/confirm/resend', 'AuthRegisterController@resendConfirmation');
Route::name('auth.confirm')->get('/register/confirm/{confirmation_code}', 'AuthRegisterController@confirm');
Lorsqu’un utilisateur clique sur le lien de vérification, ce package ajoute des messages flash contenant un message d’erreur/d’information pour les utilisateurs. Pour afficher ce message flash aux utilisateurs, ajoutez le code ci-dessous dans le fichier 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
.....
Nous devons également ajouter le code ci-dessous dans le resourcesviewsauthpasswordsemail.blade.php
.....
<div class="panel-body">
@if ($errors->has('confirmation') > 0) <div class="alert alert-danger" role="alert">
{!! $errors->first('confirmation') !!}
</div>
@endif
.....
C’est ça! Désormais, lorsqu’un utilisateur s’inscrit sur votre site Web, il recevra un e-mail d’activation pour confirmer son compte. S’il vous plaît partager vos pensées dans la section commentaire ci-dessous.
Articles Liés
- Comment utiliser Laravel Passport pour l’authentification API REST
- Comment télécharger un fichier sur S3 à l’aide du système de fichiers Laravel