Laravel : rediriger l’utilisateur vers une page après sa connexion

Dans cet article, je vais vous parler une nouvelle fois de mon framework PHP préféré et il s’agit bien évidemment de Laravel. Je travaille quasiment tous les jours avec Laravel et pour tout ce qui est applications web et site, j’en suis pleinement satisfait. Je n’ai pas grand-chose à lui reprocher. J’utilise aussi Laravel seulement en local pour certains projets et il m’est bien utile pour organiser mes scripts PHP en ligne de commande.

Aujourd’hui, je vais vous parler de login et d’authentification avec ce framework. J’avais fait un tutoriel pour créer un système d’authentification avec Laravel et si vous êtes débutant, c’est très facile à mettre en place. Ce serait dommage de ne pas y jeter un coup d’œil si ça vous intéresse. J’étais même allé plus loin avec la gestion des rôles dans Laravel entre un compte administrateur et simple utilisateur classique. Ici, on va parler de ce qu’il se passe lorsque un utilisateur se connecte avec succès à votre application via le formulaire de login.

Comprendre l’authentification de Laravel

Cela ne vous a sûrement pas échappé, mais par défaut, lorsqu’un utilisateur se connecte avec succès à votre application Laravel, il est redirigé vers l’adresse /home. Ce n’est peut-être pas ce que vous voulez dans votre application et vous voulez rediriger votre utilisateur vers une autre adresse comme la racine de votre nom de domaine ou une adresse spécifique. Ici, c’est vous qui décidez vers quoi vous allez rediriger votre utilisateur.

Vous ne serez pas obligé de le faire, car je vais vous donner les bons fichiers. Pour l’exemple, je vais utiliser la commande grep pour voir ce qu’il se passe. Je lance donc la commande suivante :

grep -rnw './' -e '/home'

Elle me donne ce résultat assez explicite :

./app/Providers/RouteServiceProvider.php:20:    public const HOME = '/home';
./app/Http/Controllers/Auth/ConfirmPasswordController.php:28:    protected $redirectTo = '/home';
./app/Http/Controllers/Auth/ResetPasswordController.php:28:    protected $redirectTo = '/home';
./app/Http/Controllers/Auth/RegisterController.php:31:    protected $redirectTo = '/home';
./app/Http/Controllers/Auth/VerificationController.php:28:    protected $redirectTo = '/home';
./app/Http/Controllers/Auth/LoginController.php:28:    protected $redirectTo = '/home';
  • ./app/Http/Controllers/Auth/ConfirmPasswordController.php : dans ce contrôleur on spécifie la route de redirection après que les utilisateurs confirment leur mot de passe (une étape de sécurité supplémentaire pour certaines actions sensibles).
  • ./app/Http/Controllers/Auth/ResetPasswordController.php : indique où rediriger les utilisateurs après qu’ils ont réussi à réinitialiser leur mot de passe. Cela permet de les envoyer vers une page où ils peuvent commencer à naviguer après avoir récupéré l’accès à leur compte.
  • ./app/Http/Controllers/Auth/RegisterController.php : définit où les nouveaux utilisateurs sont redirigés après avoir complété le processus d’inscription. Cela leur donne un point de départ dans votre application après avoir créé un compte.
  • ./app/Http/Controllers/Auth/VerificationController.php : spécifie la redirection après la vérification de l’adresse email. C’est important pour les applications qui nécessitent une vérification de l’email avant que les utilisateurs puissent accéder à certaines fonctionnalités.
  • ./app/Http/Controllers/Auth/LoginController.php : détermine ce qu’il se passe après qu’un utilisateur se soit connecté avec succès à votre application Laravel.

C’est ce dernier fichier qui nous intéresse et que l’on va modifier. Je vous ai parlé des autres fichiers, car le principe est le même donc vous pourrez aussi modifier les redirections selon vos besoins dans ces fichiers.

Changer l’adresse de redirection après le login de l’utilisateur

Maintenant, que vous avez la liste des fichiers à modifier selon vos besoins et ce que vous voulez faire, on peut passer à l’exemple de la ligne qu’il faut modifier. Dans cet article, je vais donc cibler plus particulièrement le fichier à éditer qui nous intéresse : app/Http/Controllers/Auth/LoginController.php. Vous allez alors retrouver ce fichier le /home en dur dans le code et qu’il va falloir remplacer. Voici le contenu de ce fichier édité qui va renvoyer l’utilisateur vers /mapage après qu’il se soit connecté avec succès à mon application :

<?php
namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/mapage';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }
}

Comme vous pouvez le voir, il n’y a rien de très compliqué. Il faut juste savoir ou ça se trouver et quoi éditer. J’espère que ce tutoriel, pour rediriger un utilisateur après son login sur Laravel vous aura été utile et on se retrouve bientôt avec de nouveaux articles sur ce framework !

Laisser un commentaire