Enregistrement de l’utilisateur et système de connexion dans Laravel
Laravel fournit un système intégré d’enregistrement et de connexion des utilisateurs. La plupart des développeurs ne connaissent pas ce système intégré (j’étais aussi l’un d’entre eux). Quand j’ai découvert cette fonctionnalité, j’ai été surpris. Cela permet de gagner beaucoup de temps en créant un système de connexion et d’enregistrement à partir de zéro.
Dans cet article, nous étudions le système d’enregistrement et de connexion des utilisateurs dans Laravel – la fonctionnalité intégrée fournie par Laravel lui-même.
Comme nous le savons tous, le processus de connexion et d’enregistrement a un flux ci-dessous qui doit généralement être intégré.
- L’utilisateur crée un compte
- Le lien de confirmation sera envoyé sur l’adresse e-mail de l’utilisateur
- Une fois que l’utilisateur a cliqué sur le lien de confirmation, il est activé sur votre système.
- L’utilisateur se connecte à votre site Web et peut accéder aux pages
Toutes les étapes ci-dessus sont couvertes dans Laravel. Vous n’avez pas besoin d’écrire de code pour construire ce système de création d’utilisateurs.
Cela dit, jetons un coup d’œil au système d’enregistrement et de connexion des utilisateurs dans Laravel
Commencer
Pour commencer, vous devez être prêt avec le projet Laravel. Si vous ne l’avez pas, créez-le en exécutant la commande :
composer create-project --prefer-dist laravel/laravel laravel-dev
Ici ‘laravel-dev’ est le nom du projet Laravel. L’utilisateur peut modifier ce nom.
Ensuite, vous devez intégrer l’authentification Laravel. Rendez-vous dans le répertoire racine du projet dans le terminal et exécutez les commandes ci-dessous une par une :
composer require laravel/ui --dev
php artisan ui vue --auth
npm install && npm run dev
Ces commandes créeront des contrôleurs d’authentification comme LoginController.php
, RegisterController.php
, etc que vous trouverez dans le app/Http/Controllers/Auth
répertoire. Il crée également une vue login.blade.php
, register.blade.php
sous resources/view/auth
répertoire.
Les commandes ci-dessus créent également un app.blade.php
fichier sous resources/views/layouts
répertoire. Cette vue est une mise en page de base pour l’application. Il utilise le framework CSS Bootstrap mais l’utilisateur peut le personnaliser et modifier le design.
Exécutez la commande de migration qui créera une table ‘users’ dans votre base de données.
php artisan migrate
Maintenant, si vous exécutez le projet Laravel sur le navigateur, vous verrez les liens pour la connexion et le formulaire d’inscription.
A ce stade, les utilisateurs peuvent créer leur compte et se connecter au site. Mais comme je l’ai mentionné ci-dessus, avant qu’un utilisateur puisse accéder au système, il doit avoir confirmé son compte.
Dans l’étape suivante, nous verrons comment effectuer le processus de vérification des e-mails d’un utilisateur.
vérification de l’E-mail
Lors de la création d’un système d’enregistrement, lors de l’inscription de l’utilisateur, vous envoyez un lien d’activation aux utilisateurs. Ce lien d’activation sera utilisé pour vérifier le compte utilisateur. Une fois, l’utilisateur clique sur un lien d’activation puis nous rendons cet utilisateur actif. En d’autres termes, après avoir vérifié le compte, l’utilisateur peut parcourir les pages de votre application.
Laravel fournit un système intégré de processus de vérification des e-mails pour un utilisateur nouvellement enregistré. En utilisant ce système, un utilisateur enregistré recevra un e-mail avec un lien d’activation. Lors de l’activation du compte, l’utilisateur pourra accéder au système.
Ouvrez le AppUser.php
fichier et assurez-vous que le modèle « utilisateur » implémente le IlluminateContractsAuthMustVerifyEmail
contrat.
<?php
namespace App;
use IlluminateContractsAuthMustVerifyEmail;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
class User extends Authenticatable implements MustVerifyEmail
{
...
...
}
Comment ça marche? Si vous vérifiez le fichier de migration, la table ‘users’ contient une email_verified_at
colonne. Cette colonne servira à vérifier si l’utilisateur a activé son compte ou non. Si le compte est activé, cette colonne doit avoir la date et l’heure d’activation.
Lorsque vous exécutez la commande d’authentification, elle crée une AuthVerificationController
classe dont la logique est écrite pour envoyer des liens de vérification et vérifier les e-mails. Le développeur peut vérifier ce fichier. Pour enregistrer les routes nécessaires pour ce contrôleur, écrivez les routes ci-dessous dans le routes/web.php
fichier.
Auth::routes(['verify' => true]);
L’utilisateur peut protéger ses routes qui devraient être derrière la connexion. Pour protéger les routes, vous devez appliquer middleware('verified')
à ces routes. Après cela, ces routes protégées ne sont accessibles que par des comptes vérifiés.
Vous pouvez écrire le code pour protéger la route comme suit :
Route::get('profile', function() {
return '<h1>This is profile page</h1>';
})->middleware('verified');
Si vous souhaitez savoir où rediriger l’utilisateur après vérification, ouvrez le AuthVerificationController
fichier. Le fichier a la variable $redirectTo
qui sera utilisée pour la redirection. Modifiez cet itinéraire selon vos besoins.
protected $redirectTo = '/home';
Connexion et inscription de l’utilisateur
Vous êtes maintenant prêt à tester le système de connexion et d’enregistrement des utilisateurs. Comme nous traitons du processus d’inscription, votre système devrait pouvoir envoyer un e-mail. Vous pouvez utiliser le serveur SMTP de Gmail pour envoyer des e-mails. Pour plus de détails, lisez notre article Envoi d’e-mails via le serveur SMTP de Gmail dans Laravel.
Démarrez le serveur de développement local à l’aide de la commande :
php artisan serve
Créez un compte d’utilisateur sur la page d’inscription ici – http://localhost:8000/register
Lors de la soumission d’un formulaire, vous obtiendrez le lien de vérification sur votre e-mail comme suit :
Veuillez noter que Laravel vous permet de vous connecter à votre compte même si vous n’avez pas encore vérifié le compte. Mais vous ne pouvez pas accéder à la route protégée.
J’ai ajouté un middleware pour la route profile
. Sans vérifier le compte, si vous essayez de visiter la page http://localhost:8000/profile, il redirigera vers l’ URL http://localhost:8000/email/verify.
Allez-y et vérifiez votre compte. Vérifiez le tableau « utilisateurs » dans la base de données et vous verrez la email_verified_at
colonne remplie la date et l’heure d’activation. Cela signifie que vous avez vérifié votre compte avec succès. Vous devriez maintenant pouvoir accéder aux routes protégées.
J’espère que vous comprenez comment utiliser le système d’enregistrement et de connexion des utilisateurs dans Laravel. S’il vous plaît partager vos pensées et suggestions dans le commentaire ci-dessous.
Articles Liés
- Intégration de la passerelle de paiement Authorize.Net dans Laravel
- Comment créer un blog avec Laravel
- Comment créer un pot de miel pour lutter contre le spam de formulaire dans Laravel