Middleware Laravel : contrôle de l'accès aux applications et gestion des rôles

WBOY
Libérer: 2023-07-28 13:42:02
original
1486 Les gens l'ont consulté

Middleware Laravel : Contrôler les droits d'accès aux applications et gestion des rôles

Introduction :
Lors du développement d'applications Web, il est souvent nécessaire de contrôler les droits d'accès des utilisateurs pour assurer la sécurité de l'application. Le middleware de Laravel fournit un moyen concis et flexible de gérer les autorisations et les rôles des applications. Cet article explique comment utiliser le middleware Laravel pour contrôler les autorisations d'accès aux applications et la gestion des rôles.

1. Qu'est-ce qu'un middleware
Avant de comprendre en profondeur comment le middleware Laravel gère les autorisations et les rôles, nous devons d'abord comprendre ce qu'est le middleware. Dans Laravel, le middleware est un mécanisme qui gère les requêtes avant ou après leur entrée dans une route. Il peut être utilisé pour vérifier si la demande remplit certaines conditions, telles que la vérification de l'identité, la vérification des autorisations, etc. Le rôle du middleware est de prétraiter la requête avant qu'elle n'atteigne le traitement de routage ou de traiter la réponse après le traitement de routage.

2. Gestion des autorisations du middleware et des applications
Dans les applications, nous devons souvent gérer les autorisations d'accès des différents utilisateurs pour garantir que les utilisateurs ne peuvent accéder qu'aux pages pour lesquelles ils ont l'autorisation. Le middleware de Laravel nous fournit un mécanisme de gestion des autorisations simple mais puissant.

  1. Créer un middleware
    Tout d'abord, nous devons créer un middleware pour vérifier les autorisations de l'utilisateur. Vous pouvez utiliser la commande php artisan make:middleware CheckPermission pour créer un middleware appelé CheckPermission. Après avoir créé le middleware, nous pouvons trouver le fichier CheckPermission.php dans le répertoire app/Http/Middleware.
  2. Implémenter la logique de vérification des autorisations
    Dans la méthode handle du middleware CheckPermission, nous pouvons écrire la logique pour vérifier les autorisations des utilisateurs. Voici un exemple simple :
<?php

namespace AppHttpMiddleware;

use Closure;

class CheckPermission
{
    public function handle($request, Closure $next)
    {
        // 验证用户的权限
        if (!auth()->user()->hasPermission('admin')) {
            abort(403, 'Unauthorized action.');
        }

        return $next($request);
    }
}
Copier après la connexion

Dans l'exemple ci-dessus, nous supposons que l'utilisateur doit disposer d'une autorisation appelée « admin » pour accéder à une page spécifique. Si l'utilisateur ne dispose pas de cette autorisation, une erreur 403 sera renvoyée.

  1. Enregistrer le middleware
    Dans Laravel, nous devons enregistrer le middleware dans la route pour prendre effet. Nous pouvons enregistrer le middleware dans le tableau $routeMiddleware du fichier Kernel.php. Par exemple, nous enregistrons le middleware CheckPermission sous l'alias « can.access » :
protected $routeMiddleware = [
    // ...
    'can.access' => AppHttpMiddlewareCheckPermission::class,
];
Copier après la connexion

De cette façon, nous pouvons utiliser le middleware dans des routes qui nécessitent une vérification des autorisations.

  1. Application d'un middleware
    Dans les routes qui nécessitent une vérification d'autorisation, nous pouvons appliquer un middleware via des alias de middleware. Par exemple :
Route::get('/admin/dashboard', function () {
    // ...
})->middleware('can.access');
Copier après la connexion

Avec le code ci-dessus, nous pouvons garantir que seuls les utilisateurs disposant des autorisations « admin » peuvent accéder à la page « /admin/dashboard ».

3. Gestion des rôles du middleware et des applications
Dans le développement réel, en plus de gérer les droits d'accès des utilisateurs, il est également nécessaire de gérer les rôles des utilisateurs. Le middleware Laravel fournit également un moyen concis et flexible de gérer les rôles des utilisateurs.

  1. Créer un middleware
    Nous pouvons utiliser le middleware CheckPermission créé dans la section précédente pour implémenter la logique de vérification des rôles. Ajustez simplement le code de vérification des autorisations à la logique de vérification des rôles. Par exemple :
public function handle($request, Closure $next, $role)
{
    // 验证用户的角色
    if (!auth()->user()->hasRole($role)) {
        abort(403, 'Unauthorized action.');
    }

    return $next($request);
}
Copier après la connexion

Dans le code ci-dessus, nous avons ajouté un paramètre $role pour transmettre le rôle qui doit être vérifié.

  1. Enregistrer le middleware
    De même, enregistrez le middleware dans le fichier Kernel.php et spécifiez l'alias du middleware de vérification de rôle :
protected $routeMiddleware = [
    // ...
    'has.role' => AppHttpMiddlewareCheckPermission::class,
];
Copier après la connexion
  1. Appliquer le middleware
    Dans l'itinéraire qui nécessite la vérification du rôle, nous pouvons transmettre l'alias du middleware à appliquer un middleware. Par exemple :
Route::get('/admin/dashboard', function () {
    // ...
})->middleware('has.role:admin');
Copier après la connexion

Avec le code ci-dessus, nous pouvons garantir que seuls les utilisateurs ayant le rôle « admin » peuvent accéder à la page « /admin/dashboard ».

Conclusion :
En utilisant le middleware Laravel, nous pouvons facilement mettre en œuvre les droits d'accès et la gestion des rôles de l'application. Le middleware offre un moyen flexible et concis de garantir que les utilisateurs ne peuvent accéder qu'aux pages pour lesquelles ils disposent d'une autorisation ou d'un rôle. J'espère que l'introduction de cet article pourra aider les lecteurs à mieux comprendre et appliquer le middleware Laravel.

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!

Étiquettes associées:
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