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 コントローラーを参照してください。
catfan/medoo パッケージ データベース操作は、CI フレームワークのモデルの一部を置き換えるために導入されました。 TODO: medoo を使用して、CI データベース操作を完全に置き換えます。
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 を追加します。
バックエンドデータベース接続構成変更構成ファイル
cat applicationconfigdatabase.php
$ db [ ' default ' ] = array(
' dsn ' => '' ,
' hostname ' => ' localhost ' ,
' username ' => ' root ' ,
' password ' => ' root ' ,
' database ' => ' vueadminv2 ' ,
...
cat アプリケーション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 ディレクトリ、composer は関連する依存関係パッケージ 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 を使用してサイトのドメイン名管理を構成し、hosts ファイルを変更します (オプション)
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_perm_type | 権限の種類 (まだ使用されていません) |
システムの役割 | システム役割テーブル |
sys_role_perm | ロール権限関係表 |
sys_user | システムユーザーテーブル |
sys_user_dept | ユーザーが所属する部門のテーブル (1 対多も可能) |
sys_user_role | ユーザー役割の対応 |
sys_user_token | JWT トークンを使用すると、このテーブルは役に立ちません |
アップロード_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; // 单位秒