نظام إدارة أذونات دور الواجهة الخلفية العالمي، استنادًا إلى تنفيذ 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
للحصول على مثال كامل عن الإضافة والحذف والتعديل والاستعلام عن المواصفات المريحة، راجع أداة تحكم Article.php
تم تقديم عملية قاعدة بيانات الحزمة catfan/medoo لاستبدال جزء من نموذج إطار عمل CI. استخدم medoo لاستبدال عملية قاعدة بيانات CI بالكامل.
استخدم catfan/medoo لتنفيذ عملية التصفية والفرز المعقدة للصفحات، راجع معلمات إنشاء طلبات GET () وarticle_get () وusers_get () وvue الأمامية.
ترتبط معلمات طلب GET للواجهة الأمامية بمكون الجدول المستخدم هنا.
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 في بعض الأحيان في حدوث أخطاء، قم بتعديل معلمة ملف التكوين mysql my.ini mysqld وأضف 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
. يتمتع دور المسؤول الفائق للنظام تلقائيًا بجميع الأذونات (يمكن أيضًا تصميمه وفقًا لاحتياجات العمل المحددة )Tables_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; // 单位秒