亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > thinkPHP5使用Rabc實現(xiàn)權(quán)限管理

thinkPHP5使用Rabc實現(xiàn)權(quán)限管理

熱門標(biāo)簽:長春人工外呼系統(tǒng)服務(wù)商 廣東地市地圖標(biāo)注 江西手機(jī)自動外呼防封系統(tǒng)是什么 怎么向銷售公司推銷外呼系統(tǒng) 高德地圖標(biāo)注家 外呼系統(tǒng)撥打暫時無法接通 哪里辦理400電話 廣州防封卡外呼系統(tǒng)多少錢一個月 仁和怎么申請400開頭的電話

在之前我們已經(jīng)了解了think3.2Rbac的權(quán)限管理操作,但是在thinkPHP5中thinkPHP沒有內(nèi)置Rabc操作,所以我們需要使用一個thinkPHP的Rbac拓展來實現(xiàn)權(quán)限管理,在thinkPHP中我們可以使用gmars/tp5-rbac拓展來實現(xiàn)權(quán)限管理

gmars/tp5-rbac地址: https://packagist.org/package...

一:gmars/tp5-rbac安裝

composer require gmars/tp5-rbac

二:gmars/tp5-rbac使用

1:Rbac數(shù)據(jù)庫創(chuàng)建

gmars/tp5-rbac中我們需要使用到六張表,分別為:權(quán)限節(jié)點表(permission),permission_category(權(quán)限分組表),role(角色表),role_permission(角色權(quán)限關(guān)聯(lián)表),user(用戶表),user_role(用戶角色關(guān)聯(lián)表)

當(dāng)我們使用composer將gmars/tp5-rbac下載下來之后,我們可以發(fā)現(xiàn)在vendorgmarstp5-rbac目錄下有一個gmars_rbac.sql文件,此文件內(nèi)就為我們所需要創(chuàng)建表的sql

下面sql中###為你的表前綴,下面只是展示我們呢所需要的表sql,創(chuàng)建表gmars/tp5-rbac提供了方法來幫我們自動創(chuàng)建我們所需要的表

//實例化rbac
$rbac = new Rbac();
//初始化rbac所需的表,可傳入?yún)?shù)$db為數(shù)據(jù)庫配置項默認(rèn)為空則為默認(rèn)數(shù)據(jù)庫(考慮到多庫的情形)
$rbac->createTable();

上面的方法會生成rbac所需要的表,一般只執(zhí)行一次,為了安全,執(zhí)行后會加鎖,下次要執(zhí)行需要刪除鎖文件再執(zhí)行

(1):權(quán)限節(jié)點表(permission)

DROP TABLE IF EXISTS `###permission`;
CREATE TABLE `###permission` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(50) NOT NULL DEFAULT '' COMMENT '權(quán)限節(jié)點名稱',
 `type` smallint(4) unsigned NOT NULL DEFAULT '0' COMMENT '權(quán)限類型1api權(quán)限2前路由權(quán)限',
 `category_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '權(quán)限分組id',
 `path` varchar(100) NOT NULL DEFAULT '' COMMENT '權(quán)限路徑',
 `path_id` varchar(100) NOT NULL DEFAULT '' COMMENT '路徑唯一編碼',
 `description` varchar(200) NOT NULL DEFAULT '' COMMENT '描述信息',
 `status` smallint(4) unsigned NOT NULL DEFAULT '0' COMMENT '狀態(tài)0未啟用1正常',
 `create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '創(chuàng)建時間',
 PRIMARY KEY (`id`),
 KEY `idx_permission` (`path_id`,`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='權(quán)限節(jié)點表';

(2):permission_category(權(quán)限分組表

SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `###permission_category`;
CREATE TABLE `###permission_category` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(50) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '權(quán)限分組名稱',
 `description` varchar(200) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '權(quán)限分組描述',
 `status` smallint(4) unsigned NOT NULL DEFAULT '1' COMMENT '權(quán)限分組狀態(tài)1有效2無效',
 `create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '權(quán)限分組創(chuàng)建時間',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT '權(quán)限分組表';

(3):role(角色表)

DROP TABLE IF EXISTS `###role`;
CREATE TABLE `###role` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(50) NOT NULL DEFAULT '' COMMENT '角色名',
 `description` varchar(200) NOT NULL DEFAULT '' COMMENT '角色描述',
 `status` smallint(4) unsigned NOT NULL DEFAULT '0' COMMENT '狀態(tài)1正常0未啟用',
 `sort_num` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '排序值',
 PRIMARY KEY (`id`),
 KEY `idx_role` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色表';

(4):role_permission(角色權(quán)限關(guān)聯(lián)表)

DROP TABLE IF EXISTS `###role_permission`;
CREATE TABLE `###role_permission` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `role_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '角色編號',
 `permission_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '權(quán)限編號',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色權(quán)限對應(yīng)表';

(5):user(用戶表)

DROP TABLE IF EXISTS `###user`;
CREATE TABLE `###user` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `user_name` varchar(50) NOT NULL DEFAULT '' COMMENT '用戶名',
 `password` varchar(64) NOT NULL DEFAULT '' COMMENT '用戶密碼',
 `mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手機(jī)號碼',
 `last_login_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最后一次登錄時間',
 `status` smallint(4) unsigned NOT NULL DEFAULT '0' COMMENT '狀態(tài)0禁用1正常',
 `create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '賬號創(chuàng)建時間',
 `update_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '信息更新時間',
 PRIMARY KEY (`id`),
 KEY `idx_user` (`user_name`,`mobile`,`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用戶表';

(6):user_role(用戶角色關(guān)聯(lián)表)

DROP TABLE IF EXISTS `###user_role`;
CREATE TABLE `###user_role` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `user_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '用戶id',
 `role_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '角色id',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用戶角色對應(yīng)關(guān)系';

2:rbac的相關(guān)操作

(1)創(chuàng)建權(quán)限分組

//實例化rbac
$rbac = new Rbac();
//創(chuàng)建權(quán)限分組
$rbac->savePermissionCategory([
  'name' => '用戶管理組',
  'description' => '網(wǎng)站用戶的管理',
  'status' => 1
]);

當(dāng)savePermissionCategory方法中包含了主鍵id時為編輯權(quán)限分組

(2)創(chuàng)建權(quán)限節(jié)點

//實例化rbac
$rbac = new Rbac();
//創(chuàng)建權(quán)限節(jié)點
$rbac->createPermission([
  'name' => '文章列表查詢',
  'description' => '文章列表查詢',
  'status' => 1,
  'type' => 1,//type為權(quán)限類型1為后端權(quán)限2為前端權(quán)限
  'category_id' => 1,//權(quán)限分組的id
  'path' => 'article/content/list',
]);

當(dāng)createPermission方法中包含了主鍵id時為編輯權(quán)限節(jié)點

(3)創(chuàng)建角色給角色分配權(quán)限

//實例化rbac
$rbac = new Rbac();
//創(chuàng)建角色給角色分配權(quán)限
$rbac->createRole([
  'name' => '內(nèi)容管理員',
  'description' => '負(fù)責(zé)網(wǎng)站內(nèi)容管理',
  'status' => 1
], '1,2,3');

當(dāng)createRole方法的第一個參數(shù)中包含了主鍵id時為編輯角色,第二個參數(shù)為權(quán)限節(jié)點的id拼接的字符串

(4)給用戶分配角色

//實例化rbac
$rbac = new Rbac();
//給用戶分配角色
$rbac->assignUserRole(1, [1]);

第一個參數(shù)為用戶id,第二個參數(shù)為角色id的數(shù)組,此方法會先刪除用戶之前分配的角色,然后重新給用戶分配角色

(5)獲取權(quán)限分組列表

//實例化rbac
$rbac = new Rbac();
//獲取權(quán)限分組列表
$rbac->getPermissionCategory([['status', '=', 1]]);//參數(shù)為權(quán)限分組表的條件

(6)獲取權(quán)限列表

//實例化rbac
$rbac = new Rbac();
//獲取權(quán)限列表
$rbac->getPermission([['status', '=', 1]]);//參數(shù)為權(quán)限表條件

(7)獲取角色列表

//實例化rbac
$rbac = new Rbac();
//獲取角色列表
$rbac->getRole([], true);

第一個參數(shù)為role表的條件,第二個參數(shù)為true時查詢角色分配的所有權(quán)限id

(8)刪除權(quán)限相關(guān)方法

刪除權(quán)限分組
$rbac->delPermissionCategory([1,2,3,4]);
刪除權(quán)限
$rbac->delPermission([1,2,3,4]);
刪除角色
$rbac->delRole([1,2,3,4]);

(9)權(quán)限驗證

[1]service方式

service方式因為要用到session一般要依賴于cookie,在用戶登錄后獲取用戶權(quán)限并將用戶權(quán)限進(jìn)行緩存

$rbac->cachePermission(1);//參數(shù)為登錄用戶的user_id,返回值為用戶權(quán)限列表

驗證,判斷用戶對于指定的節(jié)點是否具有權(quán)限:

$rbac->can('article/channel/list');

[2]jwt方式

jwt方式在前后端分離結(jié)構(gòu)用的比較普遍。在用戶登錄后需要獲取token,將下面方法獲取到的token傳遞到前端

$rbac->generateToken(1);//第一個參數(shù)為登錄的用戶id,第二個參數(shù)為token有效期默認(rèn)為7200秒,第三個參數(shù)為token前綴 返回結(jié)果為

返回值示例如下:

array(3) {
 ["token"] => string(32) "4c56b80f06d3d8810b97db33a1291694"
 ["refresh_token"] => string(32) "17914241bde6bfc46b20e643b2c58279"
 ["expire"] => int(7200)
}

使用refresh_token刷新權(quán)限,有效期內(nèi)使用refresh_token來刷新授權(quán)

$rbac->refreshToken('17914241bde6bfc46b20e643b2c58279');

驗證,前端將token傳遞到后端,后端校驗用戶是否具有指定節(jié)點權(quán)限

$rbac->can('article/channel/list');

總結(jié)

以上所述是小編給大家介紹的thinkPHP5使用Rabc實現(xiàn)權(quán)限管理,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

您可能感興趣的文章:
  • thinkphp框架使用JWTtoken的方法詳解
  • PHP如何使用JWT做Api接口身份認(rèn)證的實現(xiàn)
  • php實現(xiàn)JWT(json web token)鑒權(quán)實例詳解
  • PHP JWT初識及其簡單示例
  • php JWT在web端中的使用方法教程
  • php 后端實現(xiàn)JWT認(rèn)證方法示例
  • thinkPHP5使用laypage分頁插件實現(xiàn)列表分頁功能
  • Thinkphp5框架使用validate實現(xiàn)驗證功能的方法
  • thinkphp5使用bootstrapvalidator進(jìn)行異步驗證郵箱的示例
  • 基于ThinkPHP5框架使用QueryList爬取并存入mysql數(shù)據(jù)庫操作示例
  • ThinkPHP5框架中使用JWT的方法示例

標(biāo)簽:海北 梅河口 湘西 廈門 濮陽 黔東 文山 惠州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《thinkPHP5使用Rabc實現(xiàn)權(quán)限管理》,本文關(guān)鍵詞  thinkPHP5,使用,Rabc,實現(xiàn),權(quán)限,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《thinkPHP5使用Rabc實現(xiàn)權(quán)限管理》相關(guān)的同類信息!
  • 本頁收集關(guān)于thinkPHP5使用Rabc實現(xiàn)權(quán)限管理的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    久久国产精品只做精品| 一级片片| 精品国产一区二区三区国产馆| 美女免费黄网站| 成人免费高清视频| 一级片片| 午夜欧美福利| 欧美a级成人淫片免费看| 四虎影视库国产精品一区| 香蕉视频久久| a级毛片免费观看网站| 国产一区二区精品久| 国产成人精品在线| 亚洲天堂免费观看| 黄色福利片| 国产网站在线| 二级特黄绝大片免费视频大片| 精品久久久久久中文字幕一区| 黄色免费网站在线| 美女免费黄网站| 国产美女在线观看| 欧美激情一区二区三区在线 | 日日夜夜婷婷| 午夜激情视频在线播放| 亚久久伊人精品青青草原2020| a级精品九九九大片免费看| 日韩欧美一二三区| 久草免费在线色站| 国产成a人片在线观看视频| 国产精品1024永久免费视频| 精品国产一区二区三区国产馆| 成人a级高清视频在线观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 久久精品道一区二区三区| 中文字幕一区二区三区精彩视频 | 久久久成人影院| 中文字幕97| 精品视频免费看| 日韩中文字幕在线亚洲一区| 国产网站免费观看| 黄视频网站在线看| 国产激情一区二区三区| 日本特黄特色aaa大片免费| 九九久久99| 午夜激情视频在线播放| 国产网站在线| 国产美女在线观看| 国产精品1024永久免费视频| 精品视频在线观看视频免费视频| 亚洲女初尝黑人巨高清在线观看| 国产精品1024永久免费视频| 国产高清视频免费| 中文字幕一区二区三区精彩视频 | 超级乱淫黄漫画免费| 国产伦理精品| 欧美1卡一卡二卡三新区| 国产一区免费观看| 欧美另类videosbestsex视频| 国产网站麻豆精品视频| 国产不卡福利| 一本高清在线| 国产麻豆精品hdvideoss| 久草免费在线色站| 国产精品1024永久免费视频| 国产成人精品影视| 国产精品123| 日韩在线观看免费| 免费国产在线观看不卡| 99热热久久| 日韩字幕在线| 日韩一级黄色| 四虎影视久久久| 精品国产三级a∨在线观看| 国产成人女人在线视频观看 | 免费国产在线观看不卡| 日本免费看视频| 亚洲精品影院久久久久久| 国产视频一区在线| 日本伦理片网站| 青青久久网| 免费的黄色小视频| 免费的黄色小视频| 亚欧成人毛片一区二区三区四区| 成人高清护士在线播放| 国产一区二区福利久久| 精品视频在线观看一区二区 | 精品久久久久久中文字幕一区| 可以免费看污视频的网站| 日韩专区一区| 免费一级片在线观看| 欧美1卡一卡二卡三新区| 四虎久久影院| 亚洲精品影院久久久久久| 国产视频一区在线| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产极品精频在线观看| 欧美一级视频免费| 午夜精品国产自在现线拍| 99久久精品国产片| 你懂的国产精品| 免费国产一级特黄aa大片在线| 亚欧成人毛片一区二区三区四区| 一a一级片| 精品国产香蕉在线播出| 黄视频网站在线看| 免费国产一级特黄aa大片在线| 一级毛片视频在线观看| 国产不卡在线播放| 精品国产一区二区三区免费| 成人高清护士在线播放| 99久久精品国产高清一区二区 | 欧美1卡一卡二卡三新区| 欧美大片毛片aaa免费看| 久久国产影院| 免费的黄色小视频| 韩国妈妈的朋友在线播放| 免费一级片在线观看| 精品美女| 一级女性全黄生活片免费| 亚洲 欧美 91| 青青久久网| 欧美国产日韩在线| 欧美激情一区二区三区在线| 91麻豆精品国产高清在线| 国产麻豆精品hdvideoss| 国产a视频| 国产视频一区在线| 日本特黄特色aaa大片免费| 国产综合成人观看在线| 国产国语对白一级毛片| 999精品在线| 欧美a级片视频| 欧美大片毛片aaa免费看| 久草免费资源| 精品视频在线看| 欧美a级片视频| 久久成人综合网| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 香蕉视频久久| 精品视频免费看| 免费国产在线观看不卡| 麻豆网站在线免费观看| 国产视频久久久| 国产亚洲精品aaa大片| a级精品九九九大片免费看| 四虎久久影院| 亚欧视频在线| 国产视频一区二区在线观看| 九九精品在线播放| 天天做人人爱夜夜爽2020| 色综合久久天天综合观看| 韩国毛片基地| 欧美另类videosbestsex高清| 九九久久国产精品| 久久精品免视看国产明星| 亚欧成人毛片一区二区三区四区| 日韩在线观看免费| 久久久久久久免费视频| 久久国产精品只做精品| 亚洲 男人 天堂| 亚洲第一页乱| 欧美爱色| 日韩在线观看免费| 国产91精品露脸国语对白| 精品国产一区二区三区免费| 国产一区二区精品| 欧美另类videosbestsex高清| 欧美国产日韩久久久| 国产a视频| 欧美激情一区二区三区视频| 日本免费看视频| 日韩欧美一二三区| 欧美激情一区二区三区在线 | 四虎影视精品永久免费网站| 国产成人精品综合在线| 黄视频网站免费观看| 青青青草影院| 超级乱淫黄漫画免费| 国产成人女人在线视频观看 | 国产亚洲精品aaa大片| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产成人女人在线视频观看 | 免费的黄色小视频| 99热热久久| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 日日夜夜婷婷| 毛片电影网| 一级毛片视频在线观看| 午夜欧美福利| 精品国产一区二区三区国产馆| 欧美国产日韩久久久| 国产一区二区精品久| 日韩中文字幕在线播放| 国产精品自拍在线| 国产不卡在线播放| 黄色短视频网站| 免费国产在线观看不卡| 99久久精品国产高清一区二区 | 成人免费高清视频| 精品在线免费播放|