Maison >développement back-end >tutoriel php >Comment rediriger les utilisateurs vers leur destination d'origine après la connexion à Laravel ?

Comment rediriger les utilisateurs vers leur destination d'origine après la connexion à Laravel ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-30 17:37:11347parcourir

How to Redirect Users to Their Original Destination After Laravel Login?

Laravel : rediriger l'utilisateur vers la destination d'origine après la connexion

Dans Laravel, lorsqu'un utilisateur tente d'accéder à un itinéraire protégé, il est redirigé vers la page de connexion. Une fois connecté, l'utilisateur doit être redirigé vers la page à laquelle il essayait d'accéder à l'origine.

Solution

Pour Laravel 5.3 et supérieur

  • Utilisez la méthode prévue dans l'action de connexion pour rediriger l'utilisateur vers la page prévue. Exemple :
// Login action
public function login(Request $request)
{
    if (Auth::attempt($request->all())) {
        return redirect()->intended('dashboard');
    }

    return redirect('login');
}

Pour Laravel 5 jusqu'à 5.2

  • Modifier le middleware d'authentification pour stocker l'URL demandée dans une session avant de rediriger vers la page de connexion.
  • Dans l'action de connexion, utilisez la méthode prévue pour rediriger l'utilisateur vers la page prévue, ou une méthode par défaut page s’il n’y en a pas. Exemple :
// Auth middleware
public function handle($request, Closure $next)
{
    if (Auth::guest()) {
        Session::put('intended_url', request()->url());
        return redirect('login');
    }

    return $next($request);
}

// Login action
public function login(Request $request)
{
    if (Auth::attempt($request->all())) {
        return redirect()->intended('dashboard');
    }

    return redirect('login');
}

Pour Laravel 4

  • Utilisez la méthode Redirect::guest dans le filtre d'authentification pour rediriger l'utilisateur vers la connexion page et stockez l'URL demandée dans une session.
  • Dans l'action de connexion, utilisez la méthode Redirect::intended pour rediriger l'utilisateur vers la page prévue, ou une page par défaut s'il n'y en a pas. Exemple :
// Auth filter
Route::filter('auth', function($route, $request) {
    if (Auth::guest())
    {
        Session::put('intended_url', request()->url());
        return Redirect::guest('login');
    }
});

// Login action
public function login(Request $request)
{
    if (Auth::attempt($request->all())) {
        return Redirect::intended('dashboard');
    }

    return Redirect::to('login');
}

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