Système universel de gestion des autorisations de rôle backend, basé sur l'implémentation RESTful de vue-element-admin et PHP CodeIgniter 3.1.10. Il adopte un système de gestion des autorisations avec une architecture de séparation front-end et back-end et une plate-forme de développement rapide PHP. créer une solution rapide simple et facile à utiliser. Elle peut aider les utilisateurs à réduire efficacement les difficultés et les coûts de développement de projets.
Sur la base du modèle front-end [email protected], modifiez la partie routage dynamique pour réaliser que le routage du menu peut être chargé dynamiquement en fonction du rôle back-end. Les autorisations de routage back-end sont basées sur php-jwt
et utilisez php CI hook
pour l'authentification par jeton et par autorisation.
À l'exception de la page d'accueil et des documents, les exemples de modèles originaux du frontal vue-element-admin sont archivés dans le menu样例模板
, voir @router/index.js constantRouterMap et d'autres composants tels que les balises-vues, etc. , ne sont pas effectués. Des modifications peuvent être apportées et supprimées en fonction de besoins spécifiques.
Pour l'implémentation du changement dynamique de rôle, voir vue-php-admin-V3
jwt token方式
, github/gitee 三方登录
gregwar/captcha
), code de numérisation WeChat d'entreprise pour se connecter, voir vue-php-admin-V3 logs
Pour un exemple complet d'ajout, de suppression, de modification et d'interrogation de spécifications restful, voir Contrôleur Article.php
L'opération de base de données du package catfan/medoo est introduite pour remplacer une partie du modèle du framework CI. À FAIRE : Utilisez medoo pour remplacer complètement l'opération de base de données CI.
Utilisez catfan/medoo pour implémenter un filtrage et un tri de pagination complexes. Voir article_get() et users_get() et les paramètres de construction de requêtes GET frontales de vue.
Les paramètres de la requête GET frontale sont liés au composant table utilisé. Le composant vue-data-tables est utilisé ici.
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参数才有意义
Téléchargez le code front-end (répertoire vue-element-admin) et décompressez-le
Modifier la configuration de l'interface
cat .env.développement
# base api
VUE_APP_BASE_API = 'http://www.cirest.com:8890/api/v2/'
courir
npm run dev
Téléchargez le code backend PHP (répertoire CodeIgniter-3.1.10) et décompressez-le
Créez la base de données vueadmin et importez le fichier vueadmin.sql Lorsque l'importation navcat-for-mysql provoque parfois des erreurs, modifiez le paramètre du fichier de configuration mysql my.ini mysqld et ajoutez max_allowed_packet = 500M sous le nœud.
Fichier de configuration de modification de la configuration de la connexion à la base de données principale
application chatconfigdatabase.php
$ db [ ' default ' ] = array(
' dsn ' => '' ,
' hostname ' => ' localhost ' ,
' username ' => ' root ' ,
' password ' => ' root ' ,
' database ' => ' vueadminv2 ' ,
...
application chatconfigconfig.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
]
];
Répertoire CodeIgniter-3.1.10, composer installe les packages de dépendances associés php-jwt et codeigniter-restserver
composer install // 根据composer.json 初始安装所有插件包
Ou manuellement
composer require chriskacerguis/codeigniter-restserver
composer require firebase/php-jwt
composer require league/oauth2-github
composer require nette/http
composer require catfan/medoo
Utilisez phpstudy pour configurer la gestion des noms de domaine du site et modifier le fichier hosts (facultatif)
www.cirest.com:8890 Notez qu'il est cohérent avec la configuration de l'interface frontale BASE_API : '"http://www.cirest.com:8890/api/v2/"'
Exemple d'utilisation d'appel d'interface 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
L'interface de test d'authentification sans jeton est configurée dans 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 ' ,
]
L'URI de l'interface PHP backend contient index.php. Si vous souhaitez supprimer et modifier CodeIgniter-3.1.10/.htaccess
(Apache) dans le répertoire racine, veuillez noter qu'il ne se trouve pas dans CodeIgniter-3.1.10/application/
répertoire.
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 >
Pour Nginx, vous devez modifier la configuration correspondante de nginx.
sys_perm
. Le rôle de super-administrateur du système dispose automatiquement de toutes les autorisations (peut également être conçu en fonction des besoins spécifiques de l'entreprise). )Tables_in_vueadminv2 | illustrer |
---|---|
clés | L'apikey PHP CI RESTful peut être activée et désactivée dans config.php |
journaux | La table de journal PHP CI RESTful peut être activée et désactivée dans config.php |
sys_dept | Tableau des départements système |
menu_sys | Tableau du menu système |
sys_perm | Tableau des autorisations du système |
sys_perm_type | Type d'autorisation (pas encore utilisé) |
rôle_sys | Tableau des rôles système |
sys_role_perm | Tableau des relations entre les autorisations de rôle |
utilisateur_sys | Tableau des utilisateurs du système |
sys_user_dept | Tableau des départements auxquels appartiennent les utilisateurs (peut être un à plusieurs) |
rôle_utilisateur_sys | Correspondance des rôles d'utilisateur |
sys_user_token | En utilisant le jeton JWT, ce tableau est inutile |
télécharger_tbl | Formulaire de test commercial |
php 7.3.4nts
+ Apache 2.4.39
CodeIgniter-3.1.10applicationconfigconfig.php // Configuration du délai d'expiration access_token/refresh_token
$config['jwt_access_token_exp'] = 15; // 单位秒
$config['jwt_refresh_token_exp'] = 180; // 单位秒