Maison > cadre php > Laravel > Comment rediriger les utilisateurs non connectés dans Laravel

Comment rediriger les utilisateurs non connectés dans Laravel

PHPz
Libérer: 2023-04-07 17:23:16
original
950 Les gens l'ont consulté

Laravel est l'un des frameworks de développement PHP les plus populaires aujourd'hui. Il fournit de nombreuses fonctionnalités et outils utiles qui peuvent nous aider à développer et tester rapidement des applications Web. L'une des fonctions importantes est le système d'authentification des utilisateurs (Authentification). Dans la plupart des applications, nous devons garantir que seuls les utilisateurs authentifiés peuvent accéder aux pages et fonctionnalités sensibles. Cet article explique comment implémenter le saut d'utilisateur non connecté dans Laravel et vous fournit des conseils et des suggestions utiles.

Utilisez un middleware pour rediriger les utilisateurs non connectés

Dans Laravel, nous pouvons utiliser un middleware pour gérer les requêtes. Le middleware nous aide à effectuer certaines actions avant ou après que la demande parvienne au contrôleur. Dans notre application, nous pouvons utiliser un middleware pour vérifier si l'utilisateur est déjà connecté. Si l'utilisateur n'est pas connecté, nous pouvons le rediriger vers la page de connexion.

Tout d’abord, mettons en place un middleware appelé invité. Nous pouvons le créer à l'aide de la commande Artisan php artisan make:middleware GuestMiddleware. Nous pouvons ensuite écrire du code dans le middleware invité pour vérifier si l'utilisateur est déjà connecté :

public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->check()) {
        return redirect('/home');
    }
    return $next($request);
}
Copier après la connexion

Ici, nous utilisons Auth::guard($guard)->check() pour vérifier si l'utilisateur est déjà connecté. Si tel est le cas, nous redirigerons l’utilisateur vers la page /home. Dans le cas contraire, le contrôle est transmis à l’action suivante du middleware ou du contrôleur.

Ensuite, nous pouvons utiliser le middleware invité dans la définition de la route. Par exemple, nous pouvons définir la route suivante dans le fichier web.php :

Route::group(['middleware' => ['guest']], function () {
    Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
    Route::post('login', 'Auth\LoginController@login');
});
Copier après la connexion

Ici, nous appliquons le middleware invité à l'ensemble du groupe de routes. Cela signifie que lors de l'accès à /login et de la soumission du formulaire de connexion, le middleware invité vérifiera si l'utilisateur est déjà connecté. Si l'utilisateur est déjà connecté, il sera redirigé vers la page /home. Sinon, le fonctionnement du contrôleur continuera.

Utilisez le contrôleur d'authentification pour accéder aux utilisateurs non connectés

Une autre façon d'accéder aux utilisateurs non connectés consiste à utiliser des traits dans le contrôleur d'authentification. Dans Laravel, nous pouvons utiliser certains traits pour implémenter facilement des fonctions d'authentification des utilisateurs. L’une de ces caractéristiques est IlluminateFoundationAuthAuthenticatesUsers. Ce trait contient des opérations pour les utilisateurs connectés et déconnectés, ainsi qu'une logique de redirection.

Tout d'abord, créons un contrôleur appelé CustomLoginController et utilisons le trait AuthenticatesUsers :

use Illuminate\Foundation\Auth\AuthenticatesUsers;

class CustomLoginController extends Controller
{
    use AuthenticatesUsers;
}
Copier après la connexion

Ici, nous allons faire en sorte que CustomLoginController utilise le trait AuthenticatesUsers.

Ensuite, nous pouvons remplacer la méthode showLoginForm et la méthode authentifiée dans le trait AuthenticatesUsers. Dans ces méthodes, nous pouvons spécifier la page de connexion et la logique de redirection :

use Illuminate\Foundation\Auth\AuthenticatesUsers;

class CustomLoginController extends Controller
{
    use AuthenticatesUsers;

    protected function showLoginForm()
    {
        return view('auth.login');
    }

    protected function authenticated(Request $request, $user)
    {
        return redirect()->route('home');
    }
}
Copier après la connexion

Ici, nous remplaçons la méthode showLoginForm pour renvoyer la vue "auth.login". Nous remplaçons la méthode authentifiée pour rediriger vers la route « home ».

Enfin, nous pouvons définir les routes suivantes dans le fichier web.php :

Route::get('login', 'CustomLoginController@showLoginForm')->name('login');
Route::post('login', 'CustomLoginController@login');
Route::get('home', function () {
    return view('home');
})->name('home');
Copier après la connexion

Ici, nous définissons la route GET pour la page de connexion, la route POST pour soumettre le formulaire de connexion et la route GET pour la page d'accueil. Dans CustomLoginController, les méthodes showLoginForm et authentifiées que nous avons écrites géreront le formulaire de connexion et la logique de redirection.

Conclusion

Dans cet article, nous avons présenté comment implémenter le saut d'utilisateur non connecté dans Laravel. Il existe deux manières d'y parvenir : en utilisant un middleware et en utilisant un contrôleur d'authentification. Quelle que soit la méthode que vous choisissez, vous pouvez protéger vos pages et fonctionnalités sensibles en garantissant que seuls les utilisateurs authentifiés peuvent y accéder. Si vous développez une application Laravel, ces astuces et conseils devraient vous être très utiles.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal