Универсальная система управления разрешениями внутренних ролей, основанная на реализации vue-element-admin и PHP CodeIgniter 3.1.10 RESTful. Она использует систему управления разрешениями с архитектурой разделения внешнего и внутреннего интерфейса и платформу быстрой разработки PHP. создать простое и удобное в использовании быстрое решение. Оно может помочь пользователям эффективно снизить сложность и стоимость разработки проекта.
На основе шаблона внешнего интерфейса [email protected] измените часть динамической маршрутизации, чтобы обеспечить возможность динамической загрузки маршрутизации меню в соответствии с ролью серверной части. Разрешения внутренней маршрутизации основаны на php-jwt и используйте php CI hook для аутентификации токенов и разрешений.
За исключением домашней страницы и документов, исходные образцы шаблонов внешнего интерфейса vue-element-admin архивируются в меню样例模板, см. @router/index.js ConstantRouterMap и других компонентах, таких как теги-представления и т. д. , не выполнены. Изменения можно вносить и удалять в зависимости от конкретных потребностей.
Информацию о реализации динамического переключения ролей см. в vue-php-admin-V3.
jwt token方式, github/gitee 三方登录gregwar/captcha ), корпоративный код сканирования WeChat для входа в систему, см. vue-php-admin-V3. logs . Полный пример добавления, удаления, изменения и запроса restful-спецификаций см. в статье Контроллер Article.php.
Операция с базой данных пакета catfan/medoo введена для замены части модели структуры CI TODO: используйте medoo, чтобы полностью заменить операцию с базой данных CI.
Используйте catfan/medoo для реализации сложной страничной фильтрации и сортировки. См. статьиarticle_get() иusers_get() и параметры построения GET-запроса интерфейса vue.
Параметры внешнего запроса GET связаны с используемым компонентом таблицы. Здесь используется компонент vue-data-tables.
GET /articles?offset=1&limit=30&sort=-id&fields=id,title,author&query=~author,title&author=888&title=world
limit: 每页记录数,后台会配置默认值
offset: 第几页,后台会配置默认值
sort: 支持多个参数 &sort=-id,+author => id降序 author 升序
fileds: 指定要获取的显示字段 => 降低网络流量
query: 支持多个参数 &query=~author,title => author like 模糊查询, title精确查询 &author=888&title=world 需要配合query参数才有意义
Загрузите код внешнего интерфейса (каталог vue-element-admin) и разархивируйте его.
Изменить конфигурацию интерфейса
кот .env.development
# base api
VUE_APP_BASE_API = 'http://www.cirest.com:8890/api/v2/'бегать
npm run devЗагрузите внутренний код PHP (каталог CodeIgniter-3.1.10) и разархивируйте его.
Создайте базу данных vueadmin и импортируйте файл vueadmin.sql . Если импорт navcat-for-mysql иногда вызывает ошибки, измените параметр mysqld файла конфигурации my.ini и добавьте max_allowed_packet = 500M под узлом.
Файл конфигурации модификации конфигурации соединения с серверной базой данных
кошачье приложениеconfigdatabase.php
$ db [ ' default ' ] = array(
' dsn ' => '' ,
' hostname ' => ' localhost ' ,
' username ' => ' root ' ,
' password ' => ' root ' ,
' database ' => ' vueadminv2 ' ,
...кошачье приложениеconfigconfig.php
// medoodb 初始化数据库全局配置, 注意与CI databases.php 区别, TODO: 完全弃用 CI 自带数据库操作,使用medoodb
$ config [ ' medoodb ' ] = [
' database_type ' => ' mysql ' ,
' database_name ' => ' vueadminv2 ' ,
' server ' => ' localhost ' ,
' username ' => ' root ' ,
' password ' => ' root ' ,
' charset ' => ' utf8 ' ,
//可选:端口
' port ' => 3306 ,
//可选:表前缀
' prefix ' => '' ,
// PDO驱动选项 http://www.php.net/manual/en/pdo.setattribute.php
' option ' => [
PDO :: ATTR_CASE => PDO :: CASE_NATURAL
]
];В каталоге CodeIgniter-3.1.10 композитор устанавливает соответствующие пакеты зависимостей php-jwt и codeigniter-restserver.
composer install // 根据composer.json 初始安装所有插件包Или вручную
composer require chriskacerguis/codeigniter-restserver
composer require firebase/php-jwt
composer require league/oauth2-github
composer require nette/http
composer require catfan/medooИспользуйте phpstudy для настройки управления доменными именами сайта и изменения файла хостов (необязательно).
www.cirest.com:8890 Обратите внимание, что это соответствует конфигурации внешнего интерфейса BASE_API: '"http://www.cirest.com:8890/api/v2/"'
Пример использования вызова интерфейса API:
http://www.cirest.com:8890/api/v2/sys/user/testapi # 免token认证测试接口正常 对应 GET 请求
http://www.cirest.com:8890/index.php/api/v2/sys/user/testapiИнтерфейс теста аутентификации без токенов настраивается в CodeIgniter-3.1.10/config/config.php.
$ config [ ' jwt_white_list ' ] = [
' /example/users/get ' ,
' /example/users/post ' ,
' /example/users/delete ' ,
' /article/articles/get ' , // 测试api接口不认证 http://www.cirest.com:8890/api/v2/article/articles uri_string => api/v2/article/articles
' /article/articles/post ' ,
' /article/articles/put ' ,
' /article/articles/delete ' ,
' /sys/user/testapi/get ' ,
] URI внутреннего php-интерфейса содержит index.php. Если вы хотите удалить и изменить файл CodeIgniter-3.1.10/.htaccess (Apache) в корневом каталоге, обратите внимание, что его нет в CodeIgniter-3.1.10/application/ каталог.
cat CodeIgniter-3.1.10/.htaccess
< IfModule mod_rewrite.c >
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?/$1 [QSA,PT,L]
</ IfModule >Для Nginx вам необходимо изменить соответствующую конфигурацию nginx.
sys_perm . Роль суперадминистратора системы автоматически получает все разрешения (также может быть разработана в соответствии с конкретными бизнес-потребностями). )
| Таблицы_in_vueadminv2 | иллюстрировать |
|---|---|
| ключи | PHP CI RESTful apikey можно включать и выключать в config.php. |
| журналы | Таблицу журнала PHP CI RESTful можно включать и выключать в config.php. |
| sys_dept | Таблица системного отдела |
| sys_menu | Таблица системного меню |
| sys_perm | Таблица разрешений системы |
| sys_perm_type | Тип разрешения (пока не используется) |
| sys_role | Таблица системных ролей |
| sys_role_perm | Таблица отношений разрешений ролей |
| sys_user | Таблица пользователей системы |
| sys_user_dept | Таблица отделов, к которым принадлежат пользователи (может быть один-ко-многим) |
| sys_user_role | Соответствие ролей пользователей |
| sys_user_token | Используя токен JWT, эта таблица бесполезна. |
| upload_tbl | Форма бизнес-теста |
php 7.3.4nts + Apache 2.4.39

CodeIgniter-3.1.10applicationconfigconfig.php // конфигурация срока действия access_token/refresh_token
$config['jwt_access_token_exp'] = 15; // 单位秒
$config['jwt_refresh_token_exp'] = 180; // 单位秒










