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-authz
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:publish
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:run
. 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');
// 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']
Enforcer::getPolicy();
Enforcer::getRolesForUser('eve'); // ['writer']
Enforcer::getUsersForRole('writer'); // ['eve']
Enforcer::hasRoleForUser('eve', 'writer'); // true or false
Enforcer::addRoleForUser('eve', 'writer');
// to user Enforcer::addPermissionForUser('eve', 'articles', 'read'); // to role Enforcer::addPermissionForUser('writer', 'articles','edit');
Enforcer::deleteRoleForUser('eve', 'writer');
Enforcer::deleteRolesForUser('eve');
Enforcer::deleteRole('writer');
Enforcer::deletePermission('articles', 'read'); // returns false if the permission does not exist (aka not affected).
Enforcer::deletePermissionForUser('eve', 'articles', 'read');
// to user Enforcer::deletePermissionsForUser('eve'); // to role Enforcer::deletePermissionsForUser('writer');
Enforcer::getPermissionsForUser('eve'); // return array
Enforcer::hasPermissionForUser('eve', 'articles', 'read'); // true or false
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!