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

Codeigniter身份验证和授权库可以很好地耦合在一起,codeigniter,authentication,authorization,codeigniter-2,Codeigniter,Authentication,Authorization,Codeigniter 2,我需要身份验证处理功能和一些基本的基于角色的授权,只需将某些页面阻止到某个角色,并允许另一个角色上的某些页面 我已经读过这个问题: 然而,问题是,这是从2009年开始的,所以也许现在有一种新技术工作得更好。 任何建议,特别是如果您使用过该库,我都非常感谢我所知道的所有Auth库都会以某种形式或其他方式限制您。构建自己的auth库通常是一个好主意,分解它,这样就不会限制自己使用codeigniters-native-AR 对于角色/权限,我通常只将json对象存储到say users中的“权限”列

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

我已经读过这个问题:

然而,问题是,这是从2009年开始的,所以也许现在有一种新技术工作得更好。
任何建议,特别是如果您使用过该库,我都非常感谢

我所知道的所有Auth库都会以某种形式或其他方式限制您。构建自己的auth库通常是一个好主意,分解它,这样就不会限制自己使用codeigniters-native-AR

对于角色/权限,我通常只将json对象存储到say users中的“权限”列中。我更喜欢这个,而不是使用更复杂的

在我的主控制器Non restrictive中,我只创建一个permissionsarrayvar,并在子控制器中循环它以实现一个限制

例如:

sql列

主控制器

扩展儿童


我喜欢skittles的答案,所以我把它贴在这里,他没有贴:


我很确定这不是你想听的,但我更愿意听 滚我自己的课。我不怕重新发明轮子


我喜欢用盐腌的土豆条。我通常会做的是接受他们的建议 纯文本密码,并向其中添加从$config项派生的字符串 我调用$config['encryption_salt']。然后我运行新构建的字符串 通过php的sha1函数,将结果存储在数据库中


至于授权,我通常会构建一个权限查找 在my db中创建一个表,并在其用户中为用户分配权限id值 记录然后我的网站可以有条件的允许或不允许 基于其权限的活动\u id


如果Skittle会发布答案,我会标记它

我很确定这不是你们想听的,但我更喜欢自己上课。我不怕重新发明轮子。这也是一个有效的答案,我会考虑的。我担心的是密码加密,但我认为使用简单的散列函数并不难,我更喜欢使用盐渍散列。我通常会做的是获取他们的纯文本密码,并向其中添加一个从$config项派生的字符串,我称之为$config['encryption_salt']。然后通过php的sha1函数运行新构建的字符串,并将结果存储在数据库中:然后,当您想在登录期间检查他们输入的密码时,只需获取他们发布的内容,将salt添加到其中,并在针对登录或用户表的select语句中使用它。至于授权,我通常会在我的db中构建权限查找表,并在用户记录中为用户分配权限id值。然后,我的网站可以根据他们的权限id有条件地允许或不允许活动。
`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
}