Maison >développement back-end >tutoriel php >Comment rediriger les utilisateurs vers leur destination prévue après autorisation dans Laravel ?

Comment rediriger les utilisateurs vers leur destination prévue après autorisation dans Laravel ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-02 12:13:17877parcourir

How to Redirect Users to Their Intended Destination After Authorization in Laravel?

Redirection vers la destination d'origine après autorisation dans Laravel

La redirection vers la destination prévue après l'autorisation de l'utilisateur est une exigence courante dans les applications Web. Dans Laravel, pour y parvenir, il faut comprendre le fonctionnement de l'autorisation et utiliser des techniques appropriées.

Le processus d'autorisation

Lorsqu'un utilisateur tente d'accéder à une route protégée, le middleware d'authentification de Laravel, tel que le middleware d'authentification, intercepte la demande. Si l'utilisateur n'est pas connecté, il est redirigé vers une page de connexion.

Détermination de la destination d'origine

Après la connexion, nous devons déterminer la page d'origine de l'utilisateur essayait d'accéder avant le début du processus d'autorisation. Laravel fournit des fonctionnalités intégrées pour cela :

Laravel 5.3 et versions ultérieures

À partir de Laravel 5.3, la méthode d'assistance prévue a été introduite. Dans le contrôleur de connexion, après une authentification réussie :

return redirect()->intended('/');

Cela redirigera l'utilisateur vers la page à laquelle il tentait initialement d'accéder.

Laravel 5 jusqu'à 5.2

Dans Laravel 5 jusqu'à 5.2, vous pouvez utiliser la méthode prévue() sur la redirection class :

return redirect()->intended('defaultpage');

Si la page souhaitée n'est pas définie, elle sera redirigée vers la page par défaut spécifiée, telle que la page d'accueil.

Laravel 4 et versions antérieures

Avant Laravel 5.3, le support officiel de cette fonctionnalité faisait défaut. Une approche consiste à stocker l'URL prévue dans la session pendant le processus d'autorisation, puis à y rediriger une fois la connexion réussie :

// In the authorization filter
if (Auth::guest()) {
    Session::put('intended', Request::fullUrl());
    return Redirect::guest('login');
}

// In the login controller
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    $intended = Session::get('intended');
    Session::forget('intended');
    return Redirect::to($intended ?: 'defaultpage');
}

Mise en œuvre manuelle

Si vous préférez implémentez manuellement cette fonctionnalité, vous pouvez rediriger les utilisateurs vers une page où ils peuvent sélectionner la destination souhaitée après s'être connectés. Vous pouvez également stocker la page souhaitée dans une variable transitoire (par exemple, un cookie) et rediriger les utilisateurs vers immédiatement après autorisation réussie.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn