Rediriger l’utilisateur vers l’URL précédente après la connexion — Laravel

David Yao
David Yao
Dec 31, 2018 · 2 min read

Imaginons le cas de figure suivante: un utilisateur visite votre site sur le quel vous vendez pas mal de produits. Intéressé par un de vos produits, il décide de passer à l’achat. Mais, il est invité à d’abord se connecter ou s’inscrire avant d’effectuer l’achat. Une fois connecté, il peut souhaiter que le site Web le ramène à la page précédente où il consultait les informations sur le produit.

Comment rediriger l’utilisateur vers l’URL précédente après la connexion avec Laravel ?

L’expérience utilisateur lors de la navigation sur les pages est très importante. Le comportement de l’utilisateur final peut être différent, mais le propriétaire du site Web doit définir une stratégie pour une meilleure expérience utilisateur. En particulier, les sites Web de commerce électronique devraient envisager ce type d’interface utilisateur pour leurs utilisateurs finaux.

Commençons par créer la fonctionnalité permettant de rediriger l’utilisateur vers la page précédente.

Ajoutons une section dans le fichier de connexion.

resources/views/auth/login.blade.php

<div class="form-group">
@if (Request::has('previous'))
<input type="hidden" name="previous" value="{{ Request::get('previous') }}">
@else
<input type="hidden" name="previous" value="{{ URL::previous() }}">
@endif
</div>

Consultez le fichier login.blade.php sur github pour obtenir le code complet mis à jour.

De plus, vous voudrez peut-être ajouter un lien de connexion aux pages de votre site Web, par exemple:

<a href="{{ route('login') . '?previous=' . Request::fullUrl() }}">
Se connecter
</a>

Lorsqu’un utilisateur clique sur le lien de connexion, la page est redirigée vers la page de connexion, elle définit ensuite l’URL previous à saisir, qui sera envoyée à la page de connexion en POST .

/**
* @return string
*/
public function redirectTo()
{
if ($this->request->has('previous')) {
$this->redirectTo = $this->request->get('previous');
return $this->redirectTo;
}

return '/home';
}

La LoginController.php se chargera de retrouver la valeur du lien précédent dans la requête (previous) avec la méthode redirectTo()

Dans le cas contraire, elle redirigera l’utilisateur vers la page d’accueil par défaut.

Et voilà, j’espère que ça vous aidera. Cliquez ici pour plus de tutos en Laravel.

  • Merci d’avoir lu ! Si vous avez aimé cet article,
  • Faites un coucou sur : Instagram | Facebook | Twitter |
  • Avez-vous besoin d’aide pour votre projet web ? Ecrivez moi à l’adresse suivante : david@oschool.ci

Originally published at Deviens développeur web.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade