我需要身份验证处理功能和一些基于角色的基本授权(只需将某些页面阻止到某个角色,并允许某些页面覆盖另一个页面)。
我已经阅读了这个问题:What is the best Authentication and Authorization library for CodeIgniter?
然而,问题是从2009年开始,所以也许有一项新技术现在可以更好地运作。 任何建议,尤其是如果您使用过图书馆,都会受到赞赏
答案 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会发布回答我会标记