Installer le système d’authentification Laravel
Installer le système d’authentification Laravel
-
Objectifs
- Etre capable d’installer un système d’authentification Laravel
-
Présentation
- Avec Laravel, il est possible d’utiliser un système d’authentification avec routes, modèles, vues et contrôleurs déjà conçus.
- L’authentification dans Laravel est assez simple. Il dispose d’une solution intégrée pour l’authentification et de diverses installations pour le personnaliser en fonction de nos besoins.
- Si vous êtes nouveau dans Laravel 8, alors dans cet article, je vais vous montrer le processus étape par étape pour créer un système d’authentification dans Laravel 8.
- Les concepteurs de Laravel ont choisi de ne pas imposer les modèles, vues et contrôleurs d’authentification puisque le fonctionnement du système d’authentification est souvent propre à chaque application.
- Un système d’authentification est généralement basé sur différents sous-systèmes :
- L’inscription, qui permet d’ajouter des usagers dans la base de données (ce sous-système peut inclure la vérification de la validité des courriels lors de l’inscription et/ou lors de la modification d’un usager);
- L’authentification en tant que telle, qui permet à un usager d’entrer son code d’usager et son mot de passe pour accéder à des ressources qui nécessitent des droits particuliers;
- La gestion des mots de passe oubliés.
-
Installation
- Dans la première étape, nous devons obtenir une nouvelle application de version laravel à l’aide de la commande ci-dessous. Alors ouvrons le terminal et exécutons la commande ci-dessous.
- Dans la deuxième étape, nous devons configurer notre base de données.
- Pour configurer la base de données. Ouvrir le fichier «
.env
« - changer le nom de la base de données (authentification01), le nom d’utilisateur et le mot de passe.
- Exécutez la commande composer pour installer le package
composer require laravel/ui
. - Exécutez la cmmande
php artisan ui vue --auth
dans une nouvelle application Laravel. - Pour la migration de votre base de données, exécutez la cmmande
php artisan migrate
. - Accédez à votre navigateur http://127.0.0.1:800/register ou à toute autre URL attribuée à votre application.
- Cette commande unique se chargera de l’échafaudage de tout votre système d’authentification, y compris la réinitialisation des mots de passe!
-
Le modèle User
- Le modèle représentant l’utilisateur est présent dans le fichier App/Models/User.php.
- La classe User est un modèle Eloquent comme un autre : il est tout à fait possible d’ajouter des méthodes ou de l’adapter selon les besoins métier de votre application. Laravel fournit juste une représentation minimale et générique d’un utilisateur.
- À ce modèle User sont associées deux tables qui seront nécessaires à la persistance des données : users et password_resets.
- La table users représente les instances d’utilisateurs enregistrées : chaque ligne en base de données correspond à un utilisateur.
- La table password_resets contient, quant à elle, les tokens générés lorsqu’un utilisateur demande la régénération de son mot de passe.
-
Les vues, les routes et les contrôleurs
-
Les vues
- Installez le package officiel de Laravel UI pour créer un échafaudage d’authentification dans Laravel 8.
- Exécutez la commande composer pour installer le package
composer require laravel/ui
. - Après l’installation du package d’interface utilisateur Laravel. Nous devons Générer le système d’authentification, avec Bootstrap, Vue, React, etc.
- Installer les dépendances NPM
- Nous avons installé avec succès le bootstrap, et vous pouvez vous en assurer en accédant à resource/js/bootstrap.js . Vous verrez que popper.js et jQuery a été ajouté au fichier JavaScript du bootstrap.
- Dans cette étape, nous devons installer toutes nos dépendances NPM. Pour installer les dépendances NPM, exécutez la commande:
npm install
. - Si vous avez une version NodeJS installé avec NPM, probablement vous rencontré une erreur avec l’exécution de la commande précédente essayez d’exécuter la commande suivante:
npm install npm -g
. - pour compiler des actifs, exécutez la commande
npm run dev
auth/login.blade.php
: une page de connexion avec un formulaire qui demande la saisie de l’e-mail et du mot de passe.auth/register.blade.php
: une page d’inscription, pour que les visiteurs puissent créer un compte.auth/verify.blade.php
: une page de vérification de mot de passe.auth/passwords/email.blade.php
: une page « Mot de passe oublié » dans lequel l’utilisateur pourra saisir une adresse e-mail pour recevoir le message avec les instructions de réinitialisation de son mot de passe.auth/passwords/reset.blade.php
: une page qui permet de redéfinir le mot de passe, sur laquelle arrive un utilisateur qui a demandé une réinitialisation quand il clique sur le lien qu’il a reçu par mail.layouts/app.blade.php
: un fichier Blade qui propose une base commune à toutes les pages relatives à l’authentification. Cette base peut également être utilisée par les autres pages du site.home.blade.php
: une page d’accueil par défaut.-
Les routes
- En plus de créer des vues, la commande make:auth crée également des routes. Ce qui signifie que le fichier routes/web.php est modifié, plus précisément deux lignes y sont ajoutées.
-
Les contrôleurs
- Les contrôleurs associés aux routes ci-dessus pour gérer l’authentification, sont tous présents dans le dossier app/Http/Controllers/Auth.
ConfirmPasswordController
Ce contrôleur est responsable du traitement des confirmations de mot de passe.ForgotPasswordController
gère le formulaire de demande de réinitialisation de mot de passe.LoginController
gère les actions de connexion.RegisterController
s’occupe des actions relatives à l’inscription.ResetPasswordController
répond aux confirmations de changement de mot de passe.VerificationController
Ce contrôleur est responsable de la vérification des e-mails pour tout utilisateur qui s’est récemment enregistré auprès de l’application. Les e-mails peuvent également être renvoyé si l’utilisateur n’a pas reçu le message électronique d’origine.- Dans le cadre d’une utilisation simple de Laravel, ces fichiers n’ont pas besoin d’être modifiés. Il est cependant possible de les adapter, si par exemple on souhaite insérer plus de champs que ceux prévus par défaut lors de l’inscription d’un compte.
-
Utiliser le système d’authentification
- Maintenant que tout est en place, il est désormais possible de se connecter, s’inscrire ou récupérer son mot de passe depuis le navigateur. Ainsi, si l’adresse de votre application est http://monsite.test, vous pourrez accéder aux pages suivantes :
- http://127.0.0.1:8000/login : page de connexion
- http://127.0.0.1:8000/register : page d’inscription
- http://127.0.0.1:8000/password/reset : page pour redéfinir un mot de passe
- http://127.0.0.1:8000/home : page d’accueil uniquement accessible pour les utilisateurs connectés
composer create-project --prefer-dist laravel/laravel authentification-projet01
<?php
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
use HasFactory, Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name',
'email',
'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password',
'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
// Generate basic scaffolding...
php artisan ui bootstrap
php artisan ui vue
php artisan ui react
// Generate login / registration scaffolding...
php artisan ui bootstrap --auth
php artisan ui vue --auth
php artisan ui react --auth
Auth::routes();
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');