2012-01-27 11 views
0

我需要身份驗證處理功能和一些基本的基於角色的授權(只是將某些頁面阻止到某個角色並允許某些頁面在另一個頁面上)。Codeigniter身份驗證和授權庫可以很好地耦合到

我已經閱讀了這個問題:What is the best Authentication and Authorization library for CodeIgniter?

然而,從2009年的問題,所以也許有更好現在工作的一項新技術。 任何建議,特別是如果你已經使用過的庫,欣賞

+1

我敢肯定這不是你想聽到什麼,但我更喜歡推出我自己的課程。我不害怕重新發明輪子。 – Skittles 2012-01-27 04:07:58

+0

這也是一個有效的答案,我會考慮一下。我害怕的是密碼加密,但我認爲用簡單的散列函數並不難。 – 2012-01-27 14:32:56

+1

我更喜歡使用salted hash。我通常會做的是把他們的明文密碼,並添加一個字符串,它從$配置項我調用$配置[「encryption_salt」]的。然後,我通過php的sha1函數運行新建的字符串,並將結果存儲在數據庫中。 :) – Skittles 2012-01-27 14:53:06

回答

0

我喜歡吃喝玩樂回答,所以我在這裏發佈(他是不是發佈):

我敢肯定這不是你想聽到什麼,但我更喜歡 推出自己的類。我不害怕重新發明輪子

我更喜歡使用鹽漬散列。我通常會做的是取 純文本密碼,並添加一個字符串到$ config項目 ,我稱$ config ['encryption_salt']。然後通過php的sha1函數運行新建的字符串 並將結果存儲在數據庫中。

至於授權,我通常會在我的數據庫中建立一個權限查詢表 表,併爲用戶在其用戶 記錄中分配一個permission_id值。然後我的網站可以條件地允許或禁止 活動,根據自己的permission_id

如果撞柱將公佈答案,我還是選它

0

我知道所有的Auth庫限制你在某種形式或其他的袋子。它通常是一個好主意,建立自己的auth庫,分解它,所以你不要限制自己使用codeigniters原生AR。

對於角色/權限我通常只是在我的權限列中存儲一個json對象,如users。我更喜歡使用更復雜的technique

在我的主控制器(非限制性)我只是創建一個權限(數組)通過它在我的子控制器中實現一個限制。

例如:

SQL列

`permissions` varchar(200) NOT NULL DEFAULT '["r", "u", "d"]'; 

主控制器

protected $permissions = array(); 

protected function _get_permissions() 
{ 
    return (array)json_encode($this->user->permissions); 
    //get permissions from user (array/object) 
} 

擴展兒童

if(in_array('r', $this->permissions)) 
{ 
    //user can read something 
}