Table des matières
Qu'est-ce que l'autorisation Laravel
Types d'autorisation Laravel
Autorisation middleware
Policy Authorization
Laravel 授权的实现
中间件授权
策略授权
Maison cadre php Laravel Explorez le mécanisme d'autorisation et les méthodes de mise en œuvre dans Laravel

Explorez le mécanisme d'autorisation et les méthodes de mise en œuvre dans Laravel

Apr 21, 2023 am 10:06 AM

Laravel est un framework PHP populaire utilisé pour créer différents types d'applications Web. Lorsque vous créez des applications Web, vous devez souvent gérer et protéger les utilisateurs et les ressources, ce qui nécessite de gérer les autorisations d'accès.

Laravel fournit une méthode d'authentification et d'autorisation simple mais puissante qui peut facilement accorder différents niveaux d'autorisations aux utilisateurs de l'application. Dans cet article, nous explorerons le mécanisme d'autorisation dans Laravel et comment le mettre en œuvre.

Qu'est-ce que l'autorisation Laravel

L'autorisation fait référence au processus de définition et de mise en œuvre du contrôle d'accès dans une application. Cela inclut la confirmation de l'identité de l'utilisateur, la validation de son identité et la confirmation qu'il a accès aux ressources partagées.

Dans Laravel, l'autorisation fait référence aux actions spécifiques qu'un utilisateur peut effectuer ou aux ressources spécifiques auxquelles il peut accéder. Il est déterminé en fonction du rôle ou de la licence de l'utilisateur pour protéger les opérations ou les ressources sensibles au sein de l'application.

Types d'autorisation Laravel

Dans Laravel, il existe deux types d'autorisation : l'autorisation middleware et l'autorisation politique.

Autorisation middleware

L'autorisation middleware est implémentée via le mécanisme middleware de Laravel. Le middleware est un morceau de code qui s'exécute entre une requête HTTP et une réponse et peut être utilisé pour effectuer diverses tâches telles que la validation de la demande, l'autorisation, les opérations de journalisation, etc.

Lors de l'utilisation de l'autorisation middleware, chaque middleware vérifie des conditions spécifiques. Si les conditions ne sont pas remplies, le middleware refuse la demande et vous pouvez rediriger l'utilisateur vers une page de connexion ou une autre page d'erreur.

Policy Authorization

Policy Authorization est un système d'autorisation discret qui représente chaque modèle de votre application. Lorsque vous utilisez l'autorisation de stratégie, vous pouvez définir des droits d'utilisation pour chaque modèle, tels que la lecture, la création, la mise à jour et la suppression de données.

Lorsque vous utilisez l'autorisation de stratégie, vous pouvez définir des méthodes pour gérer la logique d'autorisation. Si la vérification d'autorisation échoue, Laravel lancera automatiquement une exception 403 Forbidden. 403 Forbidden 异常。

Laravel 授权的实现

中间件授权

要使用中间件授权,请实现中间件并将其添加到路由中。中间件应该检查特定的条件,并在条件不满足时停止请求。

以下是一个示例中间件实现,它检查用户是否拥有特定的角色:

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class RoleMiddleware
{
    public function handle($request, Closure $next, $role)
    {
        if (! Auth::user()->hasRole($role)) {
            return redirect('/home');
        }

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

要使用此中间件,请将其注册到 app/Http/Kernel.php 文件中的 $routeMiddleware 属性中。

protected $routeMiddleware = [
    'role' => \App\Http\Middleware\RoleMiddleware::class,
];
Copier après la connexion

现在,您可以在路由中使用 role 中间件了。

Route::group(['middleware' => ['role:admin']], function () {
    Route::get('/dashboard', function () {
        // Your code
    });
});
Copier après la connexion

上面的代码会检查用户是否拥有 admin 角色,并在没有权限的情况下重定向到主页。您可以根据需要修改中间件实现。

策略授权

策略授权是与模型相关的离散授权系统。您必须遵循以下几个步骤来实现策略授权:

  1. 生成策略

使用 make:policy 命令生成策略类:

php artisan make:policy ArticlePolicy --model=Article
Copier après la connexion

此命令将在 app/Policies 目录中创建一个名为 ArticlePolicy 的类。您可以在该类中指定每个 Article 模型的授权逻辑。

  1. 注册策略

app/Providers/AuthServiceProvider.php 文件的 $policies 属性中注册策略:

use App\Article;
use App\Policies\ArticlePolicy;

protected $policies = [
    Article::class => ArticlePolicy::class,
];
Copier après la connexion
  1. 创建授权方法

现在,您可以在策略中实现授权逻辑了。例如,您可以创建一个可以编辑文章的方法:

public function update(User $user, Article $article)
{
    return $user->id === $article->user_id;
}
Copier après la connexion

上面的代码检查当前用户是否是文章作者,如果是,则可以修改文章。如果不是,则无法访问文章编辑页面。

要在控制器中使用策略授权,请在访问 update 方法之前调用 authorize 方法:

public function update(Article $article, Request $request)
{
    $this->authorize('update', $article);

    // Your code
}
Copier après la connexion

上面的代码会检查用户是否有权限修改文章,如果没有则会抛出 403 Forbidden

Mise en œuvre de l'autorisation Laravel

Autorisation middleware

Pour utiliser l'autorisation middleware, implémentez le middleware et ajoutez-le à votre itinéraire. Le middleware doit vérifier des conditions spécifiques et arrêter la demande si les conditions ne sont pas remplies.

Voici un exemple d'implémentation de middleware qui vérifie si l'utilisateur a un rôle spécifique : 🎜rrreee🎜Pour utiliser ce middleware, enregistrez-le dans le fichier app/Http/Kernel.php $routeMiddleware Attribut . 🎜rrreee🎜Vous pouvez désormais utiliser le middleware role dans vos itinéraires. 🎜rrreee🎜Le code ci-dessus vérifiera si l'utilisateur a le rôle admin et le redirigera vers la page d'accueil sinon. Vous pouvez modifier l'implémentation du middleware selon vos besoins. 🎜🎜Policy Authorization🎜🎜Policy Authorization est un système d'autorisation discret lié au modèle. Vous devez suivre les étapes suivantes pour implémenter l'autorisation de stratégie : 🎜
  1. Générer une stratégie
🎜Utilisez la commande make:policy pour générer la classe de stratégie : 🎜rrreee 🎜Cette commande créera une classe nommée ArticlePolicy dans le répertoire app/Policies. Vous pouvez spécifier une logique d'autorisation pour chaque modèle Article de cette classe. 🎜
  1. Politique d'inscription
🎜Dans l'attribut $policies du app/Providers/AuthServiceProvider.php fichier Enregistrez la stratégie dans : 🎜rrreee
  1. Créer une méthode d'autorisation
🎜Maintenant, vous pouvez implémenter la logique d'autorisation dans la stratégie. Par exemple, vous pouvez créer une méthode permettant de modifier un article : 🎜rrreee🎜Le code ci-dessus vérifie si l'utilisateur actuel est l'auteur de l'article et, si c'est le cas, peut modifier l'article. Dans le cas contraire, la page d'édition de l'article n'est pas accessible. 🎜🎜Pour utiliser l'autorisation de politique dans le contrôleur, veuillez appeler la méthode authorize avant d'accéder à la méthode update : 🎜rrreee🎜Le code ci-dessus vérifiera si l'utilisateur a l'autorisation de modifier l'article, Sinon, une exception 403 Forbidden sera levée. 🎜🎜Résumé🎜🎜Laravel fournit un mécanisme d'autorisation simple mais puissant qui nous permet de définir facilement différents niveaux d'autorisation pour les utilisateurs de l'application. L'autorisation middleware et l'autorisation de politique sont deux types d'autorisation Laravel, qui peuvent traiter différents scénarios. 🎜🎜Grâce à l'introduction de cet article, je pense que vous maîtrisez le concept et la méthode de mise en œuvre de l'autorisation Laravel. Si vous créez une application Web nécessitant une gestion des droits des utilisateurs, cette connaissance sera votre arme. 🎜

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quel est le meilleur, Django ou Laravel? Quel est le meilleur, Django ou Laravel? Mar 28, 2025 am 10:41 AM

Django et Laravel sont tous deux des frameworks à pile. Django convient aux développeurs Python et à la logique métier complexe, tandis que Laravel convient aux développeurs PHP et à la syntaxe élégante. 1.Django est basé sur Python et suit la philosophie "Battery-Complete", adaptée au développement rapide et à une grande concurrence. 2.Laravel est basé sur PHP, mettant l'accent sur l'expérience du développeur et convient aux projets de petite et moyenne taille.

Laravel et le backend: alimentation logique d'application Web Laravel et le backend: alimentation logique d'application Web Apr 11, 2025 am 11:29 AM

Comment Laravel joue-t-il un rôle dans la logique backend? Il simplifie et améliore le développement backend par le biais de systèmes de routage, d'éloquente, d'authentification et d'autorisation, d'événements et d'auditeurs et d'optimisation des performances. 1. Le système de routage permet la définition de la structure d'URL et demande la logique de traitement. 2.Lao-éloquente simplifie l'interaction de la base de données. 3. Le système d'authentification et d'autorisation est pratique pour la gestion des utilisateurs. 4. L'événement et l'écoute implémentent la structure de code couplée de manière lâche. 5. L'optimisation des performances améliore l'efficacité de l'application par la mise en cache et la file d'attente.

Quel est le meilleur PHP ou Laravel? Quel est le meilleur PHP ou Laravel? Mar 27, 2025 pm 05:31 PM

PHP et Laravel ne sont pas directement comparables, car Laravel est un cadre basé sur PHP. 1.Php convient aux petits projets ou à un prototypage rapide car il est simple et direct. 2. Laravel convient à de grands projets ou à un développement efficace car il offre des fonctions et des outils riches, mais a une courbe d'apprentissage abrupte et peut ne pas être aussi bon que PHP pur.

Laravel est-il un frontend ou un backend? Laravel est-il un frontend ou un backend? Mar 27, 2025 pm 05:31 PM

LaravelisabackendFrameworkBuiltonPhp, conçue pourwebapplicationdevelopment.itfocusonServer-sidelogic, databasemanagement, andapplicationsstructure, andcanbenegrategratedwithfrontentechnologies likevue.jsorrectForfull-stackdevelopment.

Polyvylity de Laravel: des sites simples aux systèmes complexes Polyvylity de Laravel: des sites simples aux systèmes complexes Apr 13, 2025 am 12:13 AM

Le projet de développement de Laravel a été choisi en raison de sa flexibilité et de sa puissance pour répondre aux besoins de différentes tailles et complexités. Laravel fournit un système de routage, Eloquentorm, une ligne de commande artisanale et d'autres fonctions, soutenant le développement de blogs simples aux systèmes complexes au niveau de l'entreprise.

Pourquoi Laravel est-il si populaire? Pourquoi Laravel est-il si populaire? Apr 02, 2025 pm 02:16 PM

La popularité de Laravel comprend son processus de développement simplifié, offrant un environnement de développement agréable et des caractéristiques riches. 1) Il absorbe la philosophie de conception des rubyonrails, combinant la flexibilité de PHP. 2) Fournir des outils tels que l'éloquente, le moteur de modèle de lame, etc. pour améliorer l'efficacité du développement. 3) Son mécanisme d'architecture MVC et d'injection de dépendance rend le code plus modulaire et testable. 4) fournit des outils de débogage puissants et des méthodes d'optimisation des performances telles que les systèmes de mise en cache et les meilleures pratiques.

Fonction principale de Laravel: développement backend Fonction principale de Laravel: développement backend Apr 15, 2025 am 12:14 AM

Les fonctions principales de Laravel dans le développement back-end incluent le système de routage, l'éloquente, la fonction de migration, le système de cache et le système de file d'attente. 1. Le système de routage simplifie la cartographie de l'URL et améliore l'organisation et la maintenance du code. 2.Lesormorm fournit des opérations de données orientées objet pour améliorer l'efficacité du développement. 3. La fonction de migration gère la structure de la base de données via le contrôle de la version pour assurer la cohérence. 4. Le système de cache réduit les requêtes de la base de données et améliore la vitesse de réponse. 5. Le système de file d'attente traite efficacement les données à grande échelle, évite de bloquer les demandes des utilisateurs et d'améliorer les performances globales.

Laravel (PHP) contre Python: environnements de développement et écosystèmes Laravel (PHP) contre Python: environnements de développement et écosystèmes Apr 12, 2025 am 12:10 AM

La comparaison entre Laravel et Python dans l'environnement de développement et l'écosystème est la suivante: 1. L'environnement de développement de Laravel est simple, seul PHP et compositeur sont nécessaires. Il fournit une riche gamme de packages d'extension tels que Laravelforge, mais la maintenance des forfaits d'extension peut ne pas être opportun. 2. L'environnement de développement de Python est également simple, seuls Python et PIP sont nécessaires. L'écosystème est énorme et couvre plusieurs champs, mais la gestion de la version et de la dépendance peut être complexe.

See all articles