Think-Casbin
PHP-Casbin — это мощный и эффективный открытый фреймворк для контроля доступа, который поддерживает управление правами на основе различных моделей контроля доступа.
Think-Casbin представляет собой расширение Casbin, специально разработанное для ThinkPHP 5.1. Оно позволяет разработчикам более удобно использовать Casbin в проектах на ThinkPHP.
Для ThinkPHP 6.0 теперь доступно более мощное расширение ThinkPHP 6.0 Authorization.
composer create-project topthink/think=5.1.* tp5
composer require casbin/think-adapter
php think casbin:publish
Это автоматически создаст файл конфигурации модели config/casbin-basic-model.conf и файл конфигурации Casbin config/casbin.php.
Поскольку Think-Casbin по умолчанию сохраняет политику Casbin в базе данных, необходимо инициализировать информацию о таблицах базы данных. Перед выполнением убедитесь, что информация о подключении к базе данных настроена правильно. Если требуется изменить информацию о соединении с базой данных или имена таблиц Casbin, можно внести изменения в файл config/casbin.php.
php think casbin:migrate
Эта команда автоматически создаст таблицу правил Casbin casbin_rule.
use Casbin;
// Предоставить пользователю alice право на чтение data1
Casbin::addPolicy('alice', 'data1', 'read');
Casbin::hasPolicy('alice', 'data1', 'read'); // true
Casbin::removePolicy('alice', 'data1', 'read');
use Casbin;
$sub = 'alice'; // пользователь, пытающийся получить доступ к ресурсу.
$obj = 'data1'; // ресурс, к которому будет осуществлён доступ.
$act = 'read'; // операция, которую пользователь выполняет над ресурсом.
if (true === Casbin::enforce($sub, $obj, $act)) {
// разрешить alice читать data1
echo 'разрешить alice читать data1';
} else {
// отклонить запрос, показать ошибку
}
config/casbin-basic-model.conf — файл модели Casbin
config/casbin.php — информация об адаптере и конфигурации базы данных Casbin
— Management API — RBAC API
Для получения дополнительной информации посетите веб-сайт Casbin (https://casbin.org).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )