Sistem manajemen izin peran backend universal, berdasarkan implementasi vue-element-admin dan PHP CodeIgniter 3.1.10 RESTful. Ini mengadopsi sistem manajemen izin dengan arsitektur pemisahan front-end dan back-end serta platform pengembangan cepat PHP membangun solusi cepat yang sederhana dan mudah digunakan. Ini dapat membantu pengguna secara efektif mengurangi kesulitan dan biaya pengembangan proyek.
Berdasarkan template front-end [email protected], modifikasi bagian perutean dinamis untuk menyadari php-jwt
perutean menu dapat dimuat secara dinamis sesuai dengan peran back-end php-jwt
dan gunakan php CI hook
untuk otentikasi token dan izin.
Kecuali halaman beranda dan dokumen, contoh templat asli front-end vue-element-admin diarsipkan di bawah menu样例模板
, lihat @router/index.js ConstantRouterMap, dan komponen lain seperti tampilan tag, dll. , tidak dilakukan. Perubahan dapat dilakukan dan dihapus berdasarkan kebutuhan spesifik.
Untuk implementasi peralihan peran secara dinamis, lihat vue-php-admin-V3
jwt token方式
, github/gitee 三方登录
gregwar/captcha
), kode pindaian WeChat perusahaan untuk masuk, lihat vue-php-admin-V3 logs
Untuk contoh lengkap penambahan, penghapusan, modifikasi, dan kueri spesifikasi lainnya, lihat pengontrol Article.php
Operasi database paket catfan/medoo diperkenalkan untuk menggantikan bagian model kerangka CI. TODO: Gunakan medoo untuk sepenuhnya menggantikan operasi database CI.
Gunakan catfan/medoo untuk mengimplementasikan pemfilteran dan pengurutan halaman yang kompleks. Lihat article_get() dan users_get() dan parameter konstruksi permintaan GET front-end vue.
Parameter permintaan GET front-end terkait dengan komponen tabel yang digunakan di sini.
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参数才有意义
Unduh kode front-end (direktori vue-element-admin) dan unzip
Ubah konfigurasi antarmuka
cat .env.pengembangan
# base api
VUE_APP_BASE_API = 'http://www.cirest.com:8890/api/v2/'
berlari
npm run dev
Unduh kode backend PHP (direktori CodeIgniter-3.1.10) dan unzip
Buat database vueadmin dan impor file vueadmin.sql . Ketika impor navcat-for-mysql terkadang menyebabkan kesalahan, ubah parameter file konfigurasi mysql my.ini mysqld dan tambahkan max_allowed_packet = 500M di bawah node.
File konfigurasi modifikasi konfigurasi koneksi database backend
aplikasi kucingconfigdatabase.php
$ db [ ' default ' ] = array(
' dsn ' => '' ,
' hostname ' => ' localhost ' ,
' username ' => ' root ' ,
' password ' => ' root ' ,
' database ' => ' vueadminv2 ' ,
...
aplikasi kucingconfigconfig.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
]
];
Direktori CodeIgniter-3.1.10, komposer menginstal paket ketergantungan terkait php-jwt dan codeigniter-restserver
composer install // 根据composer.json 初始安装所有插件包
Atau secara manual
composer require chriskacerguis/codeigniter-restserver
composer require firebase/php-jwt
composer require league/oauth2-github
composer require nette/http
composer require catfan/medoo
Gunakan phpstudy untuk mengonfigurasi manajemen nama domain situs dan memodifikasi file host (opsional)
www.cirest.com:8890 Perhatikan bahwa ini konsisten dengan konfigurasi antarmuka front-end BASE_API: '"http://www.cirest.com:8890/api/v2/"'
Contoh penggunaan panggilan antarmuka 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
Antarmuka pengujian otentikasi bebas token dikonfigurasi di 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 antarmuka backend php berisi index.php Jika Anda ingin menghapus dan memodifikasi file CodeIgniter-3.1.10/.htaccess
(Apache) di direktori root, harap dicatat bahwa itu tidak ada di CodeIgniter-3.1.10/application/
direktori.
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 >
Untuk Nginx, Anda perlu mengubah konfigurasi nginx yang sesuai.
sys_perm
. Peran administrator super sistem secara otomatis memiliki semua izin (juga dapat dirancang sesuai dengan kebutuhan bisnis tertentu )Tabel_in_vueadminv2 | menjelaskan |
---|---|
kunci | Apikey PHP CI RESTful dapat diaktifkan dan dinonaktifkan di config.php |
log | Tabel log PHP CI RESTful dapat diaktifkan dan dinonaktifkan di config.php |
sys_dept | Tabel departemen sistem |
sistem_menu | Tabel menu sistem |
sys_perm | Tabel izin sistem |
sys_perm_type | Jenis izin (belum digunakan) |
sys_role | Tabel peran sistem |
sys_role_perm | Tabel hubungan izin peran |
sys_user | Tabel pengguna sistem |
sys_user_dept | Tabel departemen tempat pengguna berada (bisa satu-ke-banyak) |
sys_user_role | Korespondensi peran pengguna |
sys_user_token | Menggunakan token JWT, tabel ini tidak berguna |
unggah_tbl | Formulir tes bisnis |
php 7.3.4nts
+ Apache 2.4.39
CodeIgniter-3.1.10applicationconfigconfig.php // konfigurasi waktu kedaluwarsa access_token/refresh_token
$config['jwt_access_token_exp'] = 15; // 单位秒
$config['jwt_refresh_token_exp'] = 180; // 单位秒