許可權控制 利用CI鉤子實現許可權認證

2021-09-09 01:26:15 字數 1153 閱讀 9673

通常我們後台路徑看起來都會像下面這樣:

article/add

product/delete/1

user

因為ci是mvc的,單一入口,並且給我們提供了7個掛鉤點,一切就很簡單了,我們只需要在ci執行目標控制器方法之前攔截到請求,檢查uri是否是以manage開頭即可,如果uri以manage開頭,就檢查使用者許可權,沒有許可權就跳轉到登陸頁或是相關的提示頁。

1、先到config/config.php中設定允許使用鉤子

$config['enable_hooks'] = true;

2、再到config/hooks.php中配置許可權認證鉤子

$hook['post_controller_constructor'] = array(    'class'    => 'manageauth',    'function' => 'auth',    'filename' =>'manageauth.php',    'filepath' => 'hooks');

需要注意的是一定要使用'post_controller_constructor'掛鉤點,因為我們可能要在manageauth中使用ci的aip,連線資料庫等。

3、建立manageauth.php檔案,放到hooks目錄下,manageauth.php中的**如下:

/*

* 後台許可權攔截鉤子 * @link * @author bing.peng *

*/class manageauth

//許可權認證

public

function auth()

}

}

}

ok,就這樣,搞定了,我們通過正則表達匹配,凡是以manage打頭的url都是需要登陸後才能訪問的。

示例中的許可權認證很簡單,僅僅只是檢查下session是否存有username,如果有就認為使用者已登陸,可以訪問資源,否則就跳轉到登陸頁面。注意登陸的url千萬不是能以manage開頭,否則就重向定死迴圈了。

如果,你須更複雜的許可權認證直接寫你自己的認證方法就ok了,比如你使用了使用者、角色、資源等等。

這種實現基本可以算作aop(面向切面程式設計)了,其實php已經有了aop的雛形,改天用原生php的方法攔截,實現一下許可權認證。^_^

CI框架鉤子功能 許可權控制

1.相關資料 2.開啟 許可權控制 功能在 檔案中設定 config enable hooks true hook post controller constructor array class acl function filter filename acl.php filepath hooks ...

C 利用全域性鉤子實現鍵盤鎖

在家看網課,記筆記不方便。於是就想弄個鍵盤鎖,方便學習 在寢室也好把外接鍵盤放上去打遊戲 其實這東西挺簡單的,就三行 hhook hk lresult callback kbproc intncod,wparam wparam,lparam lparam void void lresult call...

CI鉤子實現登入滿6小時,提示重新登入

ci鉤子的簡單配置 config hooks.php hook post controller constructor array 掛鉤點根據自己的需求寫 class checkrelogin function checklogin filename checkrelogin.php filepat...