vue-element-admin 및 PHP CodeIgniter 3.1.10 RESTful 구현을 기반으로 하는 범용 백엔드 역할 권한 관리 시스템은 프런트엔드 및 백엔드 분리 아키텍처와 PHP 신속한 개발 플랫폼을 갖춘 권한 관리 시스템을 채택하는 것입니다. 간단하고 사용하기 쉬운 신속한 솔루션을 구축하면 사용자가 프로젝트 개발 어려움과 비용을 효과적으로 줄일 수 있습니다.
[email protected] 프론트엔드 템플릿을 기반으로 백엔드 역할에 따라 메뉴 라우팅이 동적으로 로드될 수 있도록 동적 라우팅 부분을 수정합니다. 백엔드 라우팅 권한은 php-jwt
기반으로 합니다. 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
테이블을 생성합니다. Restful 사양의 추가, 삭제, 수정 및 쿼리에 대한 전체 예는 Article.php 컨트롤러를 참조하세요.
CI 프레임워크 모델의 일부를 대체하기 위해 catfan/medoo 패키지 데이터베이스 작업이 도입되었습니다. TODO: CI 데이터베이스 작업을 완전히 대체하려면 medoo를 사용하세요.
복잡한 페이징 필터링 및 정렬을 구현하려면 catfan/medoo를 사용하세요. article_get(), users_get() 및 vue 프런트엔드 GET 요청 구성 매개변수를 참조하세요.
프런트엔드 GET 요청 매개변수는 사용된 테이블 구성요소와 관련되어 있습니다. 여기서는 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参数才有意义
프런트엔드 코드(vue-element-admin 디렉터리)를 다운로드하고 압축을 풉니다.
인터페이스 구성 수정
고양이 .env.개발
# 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 ' ,
]
백엔드 PHP 인터페이스 uri에는 index.php가 포함되어 있습니다. 루트 디렉터리에서 CodeIgniter-3.1.10/.htaccess
파일(Apache)을 제거하고 수정하려면 해당 파일이 CodeIgniter-3.1.10/application/
에 없다는 점에 유의하세요. 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; // 单位秒