2012-01-27 18 views
0

認証処理と基本的な役割ベースの認可(一部のページをロールにブロックし、別のページを許可する)の機能が必要です。Codeigniterよく動作する認証および認可ライブラリ

私はすでにこの質問を読んで:What is the best Authentication and Authorization library for CodeIgniter?それは2009年からの質問はので、多分良く機能するようになりました新技術があるしかし

。 ライブラリを使用している場合は、特にお勧めします。

+1

それをマークします自分のクラスを転がすことを好む私は車輪を再発明するのを恐れない。 – Skittles

+0

これも有効な答えです、私はそれについて考えるでしょう。私が恐れているのはパスワードの暗号化ですが、単純なハッシュ関数ではそれほど難しくないと思います –

+1

私は塩漬けされたハッシュを使うことを好みます。私が通常行うことはプレーンテキストパスワードをとり、$ config ['encryption_salt']という$ configアイテムから派生した文字列を追加することです。次に、phpのsha1関数を使って新しく作成した文字列を実行し、その結果をデータベースに格納します。 :) – Skittles

答えて

0

私はスキットルズが好きなので、私は(彼が投稿されていない)、ここでそれを投稿答える:

私は、これはあなたが聞きたかったものではありませんかなり確信しているが、私は自分の ロールに好みますクラス。私はホイールを再発明するのを恐れていません。

私は塩漬けされたハッシュを使うことを好みます。私が通常行うことは、 のプレーンテキストのパスワードをとり、$ config ['encryption_salt']を$ config item から派生させた文字列を追加することです。次に、新しく作成した文字列 をphpのsha1関数で実行し、結果をデータベースに格納します。

承認に関しては、私は通常、データベース内にアクセス許可ルックアップ テーブルを作成し、ユーザ レコードにpermission_id値を割り当てます。そして、私のサイトはスキットルは答えを投稿する場合は、そのpermission_id

に基づいて 活動を許可または禁止条件付けすることができます私は、私は、これはあなたが聞きたかったものではありませんかなり確信しているが、私

0

私が知っているすべてのAuthライブラリは、何らかの形であなたを制限しています。あなた自身のauthライブラリを構築するのは良い考えですが、それを分解してcodeignitersのネイティブARを使うことを制限しないでください。

ロール/許可については、通常、私の許可の列にjsonオブジェクトを保存するのは、usersです。私はこれをより複雑に使うよりも好きです。technique

私の主なコントローラでは、私はただのパーミッション(配列)varを作成し、それを私の子コントローラの中でループして制限を実装しています。

例:

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 
} 
関連する問題