Sistema universal de gestión de permisos de funciones de backend, basado en vue-element-admin y PHP CodeIgniter 3.1.10 RESTful. Adopta un sistema de gestión de permisos con arquitectura de separación de front-end y back-end y una plataforma de desarrollo rápido PHP. cree una solución rápida, simple y fácil de usar, que puede ayudar a los usuarios a reducir de manera efectiva la dificultad y el costo del desarrollo del proyecto.
Según la plantilla de front-end [email protected], modifique la parte de enrutamiento dinámico para darse cuenta de que el enrutamiento del menú se puede cargar dinámicamente de acuerdo con la función de back-end. Los permisos de enrutamiento de back-end se basan en php-jwt
y use php CI hook
para la autenticación de tokens y permisos.
A excepción de la página de inicio y los documentos, las plantillas de muestra originales de la interfaz vue-element-admin se archivan en el menú样例模板
, consulte @router/index.js constanteRouterMap y otros componentes como etiquetas-vistas, etc. , no se realizan. Se pueden realizar y eliminar cambios según necesidades específicas.
Para la implementación del cambio dinámico de roles, consulte vue-php-admin-V3
jwt token方式
, github/gitee 三方登录
gregwar/captcha
), código de escaneo de WeChat corporativo para iniciar sesión, consulte vue-php-admin-V3 logs
Para obtener un ejemplo completo de adición, eliminación, modificación y consulta de especificaciones de descanso, consulte el controlador Article.php
Se introduce la operación de base de datos del paquete catfan/medoo para reemplazar parte del modelo del marco de CI TODO: use medoo para reemplazar completamente la operación de la base de datos de CI.
Utilice catfan/medoo para implementar filtrado y clasificación de paginación complejos. Consulte los parámetros de construcción de solicitudes GET de front-end de Article_get() y users_get().
Los parámetros de solicitud GET del front-end están relacionados con el componente de tabla utilizado. Aquí se utiliza el componente 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参数才有意义
Descargue el código de front-end (directorio vue-element-admin) y descomprímalo
Modificar la configuración de la interfaz
gato .env.desarrollo
# base api
VUE_APP_BASE_API = 'http://www.cirest.com:8890/api/v2/'
correr
npm run dev
Descargue el código PHP backend (directorio CodeIgniter-3.1.10) y descomprímalo
Cree la base de datos vueadmin e importe el archivo vueadmin.sql . Cuando la importación navcat-for-mysql a veces causa errores, modifique el parámetro del archivo de configuración my.ini mysqld y agregue max_allowed_packet = 500M debajo del nodo.
Archivo de configuración de modificación de la configuración de la conexión de la base de datos backend
aplicación catconfigdatabase.php
$ db [ ' default ' ] = array(
' dsn ' => '' ,
' hostname ' => ' localhost ' ,
' username ' => ' root ' ,
' password ' => ' root ' ,
' database ' => ' vueadminv2 ' ,
...
aplicación gatoconfigconfig.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
]
];
Directorio CodeIgniter-3.1.10, Composer instala los paquetes de dependencia relacionados php-jwt y codeigniter-restserver
composer install // 根据composer.json 初始安装所有插件包
O manualmente
composer require chriskacerguis/codeigniter-restserver
composer require firebase/php-jwt
composer require league/oauth2-github
composer require nette/http
composer require catfan/medoo
Utilice phpstudy para configurar la administración de nombres de dominio del sitio y modificar el archivo de hosts (opcional)
www.cirest.com:8890 Tenga en cuenta que es coherente con la configuración de la interfaz front-end BASE_API: '"http://www.cirest.com:8890/api/v2/"'
Ejemplo de uso de llamada de interfaz 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
La interfaz de prueba de autenticación sin token está configurada en 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 ' ,
]
El uri de la interfaz PHP del backend contiene index.php. Si desea eliminar y modificar CodeIgniter-3.1.10/.htaccess
(Apache) en el directorio raíz, tenga en cuenta que no está en CodeIgniter-3.1.10/application/
directorio.
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 >
Para Nginx, debe modificar la configuración correspondiente de nginx.
sys_perm
. La función de superadministrador del sistema tiene automáticamente todos los permisos (también se puede diseñar de acuerdo con las necesidades comerciales específicas). )Tablas_en_vueadminv2 | ilustrar |
---|---|
llaves | PHP CI RESTful apikey se puede activar y desactivar en config.php |
registros | La tabla de registro PHP CI RESTful se puede activar y desactivar en config.php |
departamento_sys | tabla de departamentos del sistema |
menú_sistema | Tabla de menú del sistema |
sistema_perm | tabla de permisos del sistema |
tipo_perm_sys | Tipo de permiso (aún no utilizado) |
rol_sys | tabla de roles del sistema |
sys_role_perm | Tabla de relaciones de permisos de roles |
usuario_sys | tabla de usuarios del sistema |
sys_user_dept | Tabla de departamentos a los que pertenecen los usuarios (puede ser uno a varios) |
sys_user_role | Correspondencia de roles de usuario |
sys_user_token | Usando el token JWT, esta tabla es inútil |
subir_tbl | Formulario de prueba empresarial |
php 7.3.4nts
+ Apache 2.4.39
CodeIgniter-3.1.10applicationconfigconfig.php // configuración del tiempo de vencimiento access_token/refresh_token
$config['jwt_access_token_exp'] = 15; // 单位秒
$config['jwt_refresh_token_exp'] = 180; // 单位秒