Maison > cadre php > Laravel > le corps du texte

Une exploration approfondie de l'utilisation de l'autorisation Laravel

PHPz
Libérer: 2023-04-12 09:53:14
original
575 Les gens l'ont consulté

Laravel est un framework PHP très populaire doté de nombreuses fonctionnalités puissantes, notamment l'autorisation. Dans cet article, nous approfondirons l'utilisation de l'autorisation Laravel.

Qu'est-ce que l'autorisation ?

Dans les applications Web, l'autorisation fait référence au processus permettant de savoir si un utilisateur a le droit d'accéder à des ressources spécifiques ou d'effectuer des opérations spécifiques. L'autorisation intervient généralement après l'authentification.

Bases de l'autorisation Laravel

L'idée de base de l'utilisation de l'autorisation Laravel est de définir des politiques, puis d'utiliser ces politiques pour déterminer si un utilisateur est autorisé à accéder à une ressource spécifique. Une stratégie est une simple classe PHP qui définit la logique permettant de vérifier si un utilisateur peut accéder à une ressource spécifique.

Définir une politique

Pour créer une politique, exécutez la commande suivante :

php artisan make:policy PostPolicy --model=Post
Copier après la connexion

Cette commande créera une classe (politique) appelée PostPolicy qui sera associée au modèle Post. Vous pouvez définir des méthodes dans cette classe qui détermineront si l'utilisateur a accès au modèle.

Voici un exemple de politique pour déterminer si un utilisateur peut mettre à jour une publication :

class PostPolicy
{
    use HandlesAuthorization;

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

Dans cette politique, la méthode de mise à jour accepte deux paramètres : $user et $post. $user est une instance de l'utilisateur actuel et $post est une instance de la publication à mettre à jour. Cette méthode renvoie une valeur booléenne indiquant si l'utilisateur est autorisé à mettre à jour la publication. Dans cet exemple, les mises à jour sont autorisées si l'utilisateur actuel est le même que l'auteur de la publication.

Enregistrer une stratégie

Pour utiliser une stratégie, vous devez l'enregistrer. Vous pouvez enregistrer la stratégie dans la classe AuthServiceProvider. Dans cette classe, vous pouvez utiliser la méthode de stratégie pour mapper le modèle à une stratégie.

Par exemple, le code suivant mappe un modèle Post à une politique PostPolicy :

protected $policies = [
    'App\Post' => 'App\Policies\PostPolicy',
];
Copier après la connexion

Utilisation d'une politique

Une fois que vous avez défini et enregistré une politique, vous pouvez l'utiliser dans votre application. Pour utiliser des stratégies, utilisez la méthode d'autorisation dans le contrôleur ou ailleurs.

Par exemple, le code suivant vérifiera si l'utilisateur actuel a la permission de mettre à jour une publication donnée :

public function update(Post $post)
{
    $this->authorize('update', $post);

    // The user is authorized to update the post...
}
Copier après la connexion

Dans l'exemple ci-dessus, la méthode d'autorisation accepte deux paramètres : le nom de la politique (dans cet exemple, "update") et la ressource spécifique Une instance de ($post dans cet exemple). Si l'utilisateur a accès à la ressource, l'accès est autorisé. Sinon, une AuthorizationException sera levée.

Conclusion

L'autorisation Laravel est très puissante et peut être utilisée pour déterminer si un utilisateur est autorisé à accéder à une ressource spécifique ou à effectuer une action spécifique. Dans cet article, nous avons exploré les bases de l'autorisation Laravel, notamment la définition de politiques, l'enregistrement de politiques et l'utilisation de politiques. J'espère que cet article vous aidera à mieux utiliser les fonctionnalités d'autorisation de 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!

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