Универсальная система управления разрешениями внутренних ролей, основанная на реализации 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; // 单位秒