Cette extension nécessite PHP 7.1+ et ThinkPHP 6.0+, pour TP 5.1, veuillez utiliser Think-Casbin.Utilisez
pour installer : composer
composer require casbin/think-authzpour enregistrer le service et ajoutez :
return [ // ... tauthz\TauthzService::class,];
service.php
au fichier public global de l'application pour publier les fichiers de configuration et les fichiers de migration de base de données :
php think tauthz:publishCela générera automatiquement les fichiers
et config/tauthz-rbac-model.conf
. config/tauthz.php
Assurez-vous que les informations de configuration de la base de données sont correctes) :
php think migrate:runCela créera une table nommée
. rules
use tauthz\facade\Enforcer; // adds permissions to a user Enforcer::addPermissionForUser('eve', 'articles', 'read'); // adds a role for a user. Enforcer::addRoleForUser('eve', 'writer'); // adds permissions to a rule Enforcer::addPolicy('writer', 'articles','edit');Vous pouvez vérifier si un utilisateur dispose d'une certaine autorisation :
// to check if a user has permission if (Enforcer::enforce("eve", "articles", "edit")) { // permit eve to edit articles} else { // deny the request, show an error}
très riche pour faciliter diverses API
opérations : Policy
Enforcer::getAllRoles(); // ['writer', 'reader']Obtenir les règles d'autorisation pour tous les rôles :
Enforcer::getPolicy();Obtenir tous les rôles d'un utilisateur :
Enforcer::getRolesForUser('eve'); // ['writer']Obtenir tous les utilisateurs de un certain rôle :
Enforcer::getUsersForRole('writer'); // ['eve']Déterminer si un utilisateur a un certain rôle :
Enforcer::hasRoleForUser('eve', 'writer'); // true or falseAjouter un rôle à un utilisateur :
Enforcer::addRoleForUser('eve', 'writer');Donner des autorisations à un utilisateur ou un rôle :
// to user Enforcer::addPermissionForUser('eve', 'articles', 'read'); // to role Enforcer::addPermissionForUser('writer', 'articles','edit');Supprimer le rôle d'un utilisateur :
Enforcer::deleteRoleForUser('eve', 'writer');Supprimer tous les rôles d'un utilisateur :
Enforcer::deleteRolesForUser('eve');Supprimer un seul rôle :
Enforcer::deleteRole('writer');Supprimer une autorisation :
Enforcer::deletePermission('articles', 'read'); // returns false if the permission does not exist (aka not affected).Supprimer les autorisations pour un utilisateur ou un rôle :
Enforcer::deletePermissionForUser('eve', 'articles', 'read');Supprimer toutes les autorisations pour un utilisateur ou un rôle :
// to user Enforcer::deletePermissionsForUser('eve'); // to role Enforcer::deletePermissionsForUser('writer');Obtenir toutes les autorisations pour un utilisateur ou un rôle :
Enforcer::getPermissionsForUser('eve'); // return arrayDéterminer si un utilisateur dispose d'une certaine autorisation
Enforcer::hasPermissionForUser('eve', 'articles', 'read'); // true or falsePlus
Veuillez vous référer à l'API Casbin (https://casbin.org/docs/en/management-api). API
middleware :tauthzmiddlewareBasic::class
Route::get('news/:id','News/Show') ->middleware(\tauthz\middleware\Basic::class, ['news', 'read']);
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!