Codeigniter身份验证和授权库可以很好地耦合在一起

时间:2012-01-27 03:58:23

标签: codeigniter authentication authorization codeigniter-2

我需要身份验证处理功能和一些基于角色的基本授权(只需将某些页面阻止到某个角色,并允许某些页面覆盖另一个页面)。

我已经阅读了这个问题:What is the best Authentication and Authorization library for CodeIgniter?

然而,问题是从2009年开始,所以也许有一项新技术现在可以更好地运作。 任何建议,尤其是如果您使用过图书馆,都会受到赞赏

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:0)

我喜欢吃喝玩乐的回答,所以我在这里发帖(他没有发帖):

  

我很确定这不是你想听到的,但我更喜欢   滚动我自己的课程。我不害怕重新发明轮子

     

我更喜欢使用盐渍哈希。我通常会做的是拿走他们的   纯文本密码,并从$ config项中派生一个字符串   我叫$ config ['encryption_salt']。然后我运行新建的字符串   通过php的sha1函数将结果存储在数据库中。

     

至于授权,我通常会构建一个权限查找   我的数据库中的表,并为用户分配user_id值   记录。然后我的网站可以条件允许或不允许   基于permission_id的活动

如果Skittle会发布回答我会标记