Dans tout site web « interactif », il est nécessaire de créer une base de données des utilisateurs et de procéder à leur authentification pour protéger l’accès à certaines zones du site.
Cette authentification se base sur un identifiant (e-mail ou pseudo) et un mot de passe qui doit être stocké sous forme cryptée dans la base de données.
Laravel nous propose un système intégré d’authentification de nos utilisateurs qui nous évite de longues heures de développement de ce système.
Activer l’authentification
Pour activer l’authentification, nous allons utiliser artisan. Il va créer toutes les pages nécessaires à son fonctionnement, mais aussi la migration permettant de créer la table des utilisateurs et celle concernant la récupération des mots de passe.
Pour procéder à cette activation, la commande suivante doit être entrée dans l’invite de commande
php artisan make:auth
Cette ligne de commande crée automatiquement le fichier app/Http/Controllers/HomeController.php et ajoute les lignes ci-dessous au fichier routes/web.php
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Création de la table des utilisateurs
La commande précédente active l’authentification mais ne crée pas la table des utilisateurs dans la base de données.
Pour ce faire, nous devons exécuter la migration qui a été créée par artisan en entrant la commande ci-dessous
php artisan migrate
Cette commande va créer 2 tables :
- users : contiendra la liste des utilisateurs
- password_resets : contiendra la liste des utilisateurs qui ont demandé la réinitialisation de leur mot de passe
Utilisation
Dès cet instant, il vous suffit d’aller sur la route /register pour obtenir le formulaire d’inscription, sur la route /login pour vous connecter et sur la route /password/reset pour réinitialiser votre mot de passe.
Pour protéger une route, et faire en sorte que seuls les utilisateurs connectés y aient accès, vous la déclarez sous la forme suivante dans le fichier routes/web.php
Route::get('/ajouter', 'OffresController@ajouteOffres')->middleware('auth');
Le fait d’ajouter ->middleware(‘auth’) permet d’imposer l’authentification des utilisateurs pour cette route.
Obtenir de l'aide
Pour obtenir de l'aide, vous pouvez accéder au serveur Discord pour une entraide par chat