Dans le chapitre précédent, nous avons étudié le processus d'authentification dans Laravel. Ce chapitre vous explique le processus d'autorisation dans Laravel.
Avant d'approfondir l'apprentissage du processus d'autorisation dans Laravel, comprenons la différence entre l'authentification et l'autorisation.
Dans authentification, le système ou l'application Web identifie ses utilisateurs grâce aux informations d'identification qu'ils fournissent. S'il constate que les informations d'identification sont valides, elles sont authentifiées, ou bien elles ne le sont pas.
Dans autorisation, le système ou l'application Web vérifie si les utilisateurs authentifiés peuvent accéder aux ressources auxquelles ils tentent d'accéder ou pour lesquelles ils font une demande. En d’autres termes, il vérifie leurs droits et autorisations sur les ressources demandées. S'il constate qu'ils peuvent accéder aux ressources, cela signifie qu'ils sont autorisés.
Ainsi, authentification implique de vérifier la validité des informations d'identification de l'utilisateur, et autorisation implique de vérifier les droits et autorisations sur les ressources dont dispose un utilisateur authentifié.
Laravel fournit un mécanisme d'autorisation simple qui contient deux méthodes principales, à savoir Gates et Policies.
Les portes sont utilisées pour déterminer si un utilisateur est autorisé à effectuer une action spécifiée. Ils sont généralement définis dans App/Providers/AuthServiceProvider.php en utilisant la façade Gate. Les portes sont également des fonctions déclarées pour exécuter un mécanisme d'autorisation.
Les politiques sont déclarées dans un tableau et sont utilisées dans les classes et méthodes qui utilisent un mécanisme d'autorisation.
Les lignes de code suivantes vous expliquent comment utiliser les portes et les politiques pour autoriser un utilisateur dans une application Web Laravel. Notez que dans cet exemple, la fonction boot est utilisée pour autoriser les utilisateurs.
<?php namespace App\Providers; use Illuminate\Contracts\Auth\Access\Gate as GateContract; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; class AuthServiceProvider extends ServiceProvider{ /** * The policy mappings for the application. * * @var array */ protected $policies = [ 'App\Model' => 'App\Policies\ModelPolicy', ]; /** * Register any application authentication / authorization services. * * @param \Illuminate\Contracts\Auth\Access\Gate $gate * @return void */ public function boot(GateContract $gate) { $this->registerPolicies($gate); // } }
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!