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!