Universelles Back-End-Rollen-Berechtigungsverwaltungssystem, basierend auf vue-element-admin und PHP CodeIgniter 3.1.10 RESTful-Implementierung. Es übernimmt ein Berechtigungsverwaltungssystem mit Front-End- und Back-End-Trennarchitektur und einer PHP-Schnellentwicklungsplattform Erstellen Sie eine einfache und benutzerfreundliche schnelle Lösung, die Benutzern dabei helfen kann, Schwierigkeiten und Kosten bei der Projektentwicklung effektiv zu reduzieren.
Ändern Sie basierend auf der Front-End-Vorlage [email protected] den dynamischen Routing-Teil, um zu erkennen, dass das Menü-Routing entsprechend der Back-End-Rolle dynamisch geladen werden kann. Die Back-End-Routing-Berechtigungen basieren auf php-jwt
und verwenden Sie php CI hook
für die Token- und Berechtigungsauthentifizierung.
Mit Ausnahme der Homepage und der Dokumente werden die ursprünglichen Beispielvorlagen des vue-element-admin-Frontends im样例模板
archiviert, siehe @router/index.js konstantRouterMap und andere Komponenten wie Tags-Ansichten usw. , werden nicht vorgenommen. Änderungen können je nach Bedarf vorgenommen und gelöscht werden.
Informationen zur Implementierung des dynamischen Rollenwechsels finden Sie unter vue-php-admin-V3
jwt token方式
, github/gitee 三方登录
gregwar/captcha
), Unternehmens-WeChat-Scancode zum Anmelden, siehe vue-php-admin-V3 logs
Ein vollständiges Beispiel für das Hinzufügen, Löschen, Ändern und Abfragen von Restful-Spezifikationen finden Sie unter Article.php-Controller
Die Datenbankoperation des Catfan/Medoo-Pakets wird eingeführt, um einen Teil des Modells des CI-Frameworks zu ersetzen: Verwenden Sie Medoo, um die CI-Datenbankoperation vollständig zu ersetzen.
Verwenden Sie catfan/medoo, um komplexe Paging-Filterung und -Sortierung zu implementieren. Siehe Article_get() und Users_get() sowie Vue-Front-End-GET-Anforderungskonstruktionsparameter.
Die Front-End-GET-Anfrageparameter beziehen sich auf die verwendete Tabellenkomponente. Hier wird die Komponente vue-data-tables verwendet.
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参数才有意义
Laden Sie den Front-End-Code herunter (Verzeichnis vue-element-admin) und entpacken Sie ihn
Schnittstellenkonfiguration ändern
cat .env.development
# base api
VUE_APP_BASE_API = 'http://www.cirest.com:8890/api/v2/'
laufen
npm run dev
Laden Sie den PHP-Backend-Code herunter (Verzeichnis CodeIgniter-3.1.10) und entpacken Sie ihn
Erstellen Sie die Datenbank vueadmin und importieren Sie die Datei vueadmin.sql . Wenn der Import von navcat-for-mysql manchmal Fehler verursacht, ändern Sie den mysql-Konfigurationsdateiparameter mysqld und fügen Sie max_allowed_packet = 500M unter dem Knoten hinzu.
Konfigurationsdatei zur Änderung der Backend-Datenbankverbindungskonfiguration
cat applicationconfigdatabase.php
$ db [ ' default ' ] = array(
' dsn ' => '' ,
' hostname ' => ' localhost ' ,
' username ' => ' root ' ,
' password ' => ' root ' ,
' database ' => ' vueadminv2 ' ,
...
cat applicationconfigconfig.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-Verzeichnis, Composer installiert die zugehörigen Abhängigkeitspakete php-jwt und codeigniter-restserver
composer install // 根据composer.json 初始安装所有插件包
Oder manuell
composer require chriskacerguis/codeigniter-restserver
composer require firebase/php-jwt
composer require league/oauth2-github
composer require nette/http
composer require catfan/medoo
Verwenden Sie phpstudy, um die Verwaltung des Site-Domänennamens zu konfigurieren und die Hosts-Datei zu ändern (optional).
www.cirest.com:8890 Beachten Sie, dass es mit der Front-End-Schnittstellenkonfiguration BASE_API übereinstimmt : „http://www.cirest.com:8890/api/v2/“
Beispiel für die Verwendung eines API-Schnittstellenaufrufs:
http://www.cirest.com:8890/api/v2/sys/user/testapi # 免token认证测试接口正常 对应 GET 请求
http://www.cirest.com:8890/index.php/api/v2/sys/user/testapi
Die tokenfreie Authentifizierungstestschnittstelle wird in CodeIgniter-3.1.10/config/config.php konfiguriert
$ 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 ' ,
]
Die Backend-PHP-Schnittstellen-URI enthält index.php. Wenn Sie CodeIgniter-3.1.10/.htaccess
Datei (Apache) im Stammverzeichnis entfernen und ändern möchten, beachten Sie bitte, dass sie sich nicht in CodeIgniter-3.1.10/application/
befindet CodeIgniter-3.1.10/application/
Verzeichnis.
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 >
Für Nginx müssen Sie die entsprechende Konfiguration von Nginx ändern.
sys_perm
. Die Superadministratorrolle des Systems verfügt automatisch über alle Berechtigungen (kann auch entsprechend den spezifischen Geschäftsanforderungen gestaltet werden). )Tables_in_vueadminv2 | veranschaulichen |
---|---|
Schlüssel | PHP CI RESTful apikey kann in config.php aktiviert und deaktiviert werden |
Protokolle | Die PHP CI RESTful-Protokolltabelle kann in config.php aktiviert und deaktiviert werden |
sys_dept | Systemabteilungstabelle |
sys_menu | Systemmenütabelle |
sys_perm | Systemberechtigungstabelle |
sys_perm_type | Berechtigungstyp (noch nicht verwendet) |
sys_role | Systemrollentabelle |
sys_role_perm | Tabelle der Rollenberechtigungsbeziehungen |
sys_user | Systembenutzertabelle |
sys_user_dept | Tabelle der Abteilungen, zu denen Benutzer gehören (kann eins zu viele sein) |
sys_user_role | Benutzerrollenkorrespondenz |
sys_user_token | Bei Verwendung des JWT-Tokens ist diese Tabelle nutzlos |
upload_tbl | Business-Testformular |
php 7.3.4nts
+ Apache 2.4.39
CodeIgniter-3.1.10applicationconfigconfig.php // Konfiguration der Ablaufzeit access_token/refresh_token
$config['jwt_access_token_exp'] = 15; // 单位秒
$config['jwt_refresh_token_exp'] = 180; // 单位秒