# **選擇自己喜歡的后臺模板**
1、layuiAdmin[https://www.layui.com/admin/](https://www.layui.com/admin/)
2、xadmin[http://x.xuebingsi.com/](http://x.xuebingsi.com/)
3、layuimini[http://layuimini.99php.cn/](http://layuimini.99php.cn/)
4、h-ui admin [http://www.h-ui.net/](http://www.h-ui.net/)
5、sa-admin [http://sa-admin.dev33.cn/](http://sa-admin.dev33.cn/)
我用的是自己寫的后臺模板,原因很簡單,我前端框架掌握的不好,只能自己寫咯,不好看哦
# **關于權限管理我們選用的是ABAC的設計理念**
5ini99/think-auth [https://github.com/5ini99/think-auth/blob/master/src/Auth.php](https://github.com/5ini99/think-auth/blob/master/src/Auth.php)
## **下面是權限系統的說明**
**ACL(Access Control List):訪問權限列表? 如:**
| 用戶 |權限 |
| --- | --- |
| user1 | AC1 |
| user1 | AC2 |
| user2 | AC1 |
此時權限匯總成一個列表
這種設計最常見的應用就是文件系統的權限設計,如微軟的NTFS
對權限控制比較分散,不便于管理,比如無法簡單地將一組文件設置統一的權限開放給指定的一群用戶
**RBAC(Role Base Access Control):基于角色的權限控制**
與ACL 對比? RBAC不用給用戶單個分配權限,只用指向對應的角色就會有對應的權限,而且分配權限和收回權限都很方便
如菜單權限的設計:用戶與角色關聯,角色與菜單關聯
**ABAC(Attribute Base Access Control) 基于屬性的權限控制**
不同于常見的將用戶通過某種方式關聯到權限的方式,ABAC則是通過動態計算一個或一組屬性來是否滿足某種條件來進行授權判斷(可以編寫簡單的邏輯)。屬性通常來說分為四類:用戶屬性(如用戶年齡),環境屬性(如當前時間),操作屬性(如讀取)和對象屬性(如一篇文章,又稱資源屬性),所以理論上能夠實現非常靈活的權限控制,幾乎能滿足所有類型的需求。
例如規則:“允許所有班主任在上課時間自由進出校門”這條規則,其中,“班主任”是用戶的角色屬性,“上課時間”是環境屬性,“進出”是操作屬性,而“校門”就是對象屬性了。為了實現便捷的規則設置和規則判斷執行,ABAC通常有配置文件(XML、YAML等)或DSL配合規則解析引擎使用。XACML(eXtensible Access Control Markup Language)是ABAC的一個實現,但是該設計過于復雜,我還沒有完全理解,故不做介紹。
總結一下,ABAC有如下特點:
集中化管理
可以按需實現不同顆粒度的權限控制
不需要預定義判斷邏輯,減輕了權限系統的維護成本,特別是在需求經常變化的系統中
定義權限時,不能直觀看出用戶和對象間的關系
規則如果稍微復雜一點,或者設計混亂,會給管理者維護和追查帶來麻煩
權限判斷需要實時執行,規則過多會導致性能問題
既然ABAC這么好,那最流行的為什么還是RBAC呢?
我認為主要還是因為大部分系統對權限控制并沒有過多的需求,而且ABAC的管理相對來說太復雜了。Kubernetes便因為ABAC太難用,在1.8版本里引入了RBAC的方案。
ABAC有時也被稱為PBAC(Policy-Based Access Control)或CBAC(Claims-Based Access Control)。
- 課程介紹
- thinkphp5.0
- 安裝
- 開發規范
- 目錄結構
- 配置參數
- 系統常量
- tp5自帶的函數
- 助手函數
- 擴展類庫
- 基本類庫
- Workerman
- think-queue
- 驗證碼
- 圖片
- 權限認證
- 課前準備
- 數據庫設計
- 模塊設計
- 管理員管理
- 添加
- 編輯
- 刪除和批量刪除
- 列表頁
- 實列
- 權限管理
- 操作日志
- 基于行為的日記錄
- 行為日志的擴展
- 助手類庫
- 自建函數
- 將數組轉成uri字符串
- 獲取當前服務器的IP
- curl-post
- 截取文字中間的字符串
- 檢查中文姓名
- 省市區分別截取
- 抽獎概率問題
- 短信郵箱模板替換
- 生成csv
- PHP 圖片轉base64
- 銀行卡驗證
- json返回接口封裝
- 無限極分類
- 病毒
- xml和數組互轉
- xml轉成數組
- 數組轉xml
- tp控制器相關
- 獲取thinkph5下控制器和方法名
- 后臺查詢的簡單封裝
- 網址信息
- 獲取網站logo
- 判斷url是否存在
- 獲取title
- 判斷遠程文件是否存在
- 獲取頁面所有鏈接
- 過濾
- 截取
- 時間
- 獲取服務器信息
- 根據id生成唯一邀請碼
- 隨機顏色
- 數組字符串互換
- 創建多級目錄
- 懶人查詢
- 時間和時間戳轉換
- 房間id生菜
- 獲取需要的數組元素
- 文件和文件夾
- 文件類庫
- 文件夾
- 七牛云
- 七牛云運用場景
- 七牛云使用實例
- 郵箱
- 郵箱驗證
- 郵箱發送
- 數據庫
- 數據庫在thinkphp中的補充方法
- 備份和安全
- sql執行
- 數據庫備份2
- 時間日歷
- 時間格式化
- 日歷
- 圖片相關
- 自動獲取圖片主題顏色
- 獲取html中的圖片路徑
- 獲取圖片場景
- 獲取圖片實踐
- 圖片處理類
- 圖片處理場景
- 圖片處理實踐
- 數據驗證分析
- 身份證相關
- 新聞
- 自建類庫
- 簡易分類庫
- php 壓縮CSS代碼
- 身份證
- 分詞和抽詞
- 分詞應用場景
- 分詞實踐
- 中文轉拼音
- 中文轉拼音場景
- 中文轉拼音實踐
- 二維碼操作
- 二維碼場景
- 二維碼實踐
- 短地址
- PHPWord
- 插件化
- 插件擴展庫
- 插件列表
- 插件安裝和卸載
- 插件實踐
- 插件的離線安裝
- 計劃任務
- 計劃任務安裝
- 計劃任務實踐
- 定時器
- 注冊登錄
- 普通登錄注冊
- 第三方登錄注冊
- jwt接口登錄注冊
- 短信
- 飛鴿短信
- 阿里短信
- 消息隊列
- 網站地圖
- 全站靜態化
- 緩存
- 文件導出
- PDF生成
- phpword
- PHPExcel
- 其他類庫
- 百度
- 百度語音
- 快遞
- 跨域問題
- 寶塔
- 搜索記錄