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

发布于 2024-12-29 09:37:12 字数 307 浏览 0 评论 0原文

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

我已经读过这个问题: 什么是最好的身份验证和CodeIgniter 的授权库?

然而,这是 2009 年的问题,所以也许现在有一种更好的新技术。 任何建议,特别是如果您使用过该图书馆,我们将不胜感激

I need functionality for authentication handling and some basic role based authorization (just block some pages to a role and allow some pages on another).

I already read this question: What is the best Authentication and Authorization library for CodeIgniter?

However the question it's from 2009 so maybe there is a new technology that works better now.
Any suggestion, expecially if you have used the library, are appreciated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

豆芽 2025-01-05 09:37:12

我所知道的所有 Auth 库都会以某种形式或其他形式限制您。构建自己的身份验证库通常是个好主意,将其分解,这样您就不会限制自己使用 codeigniters 原生 AR。

对于角色/权限,我通常只是将 json 对象存储到我的权限列中,例如 users。我更喜欢这个而不是

在我的主控制器(非-restrictive)我只是创建一个权限(数组)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
}

All of the Auth libraries I know of restrict you in some form or other out of the bag. Its usually a good idea to build your own auth library, break it down so you dont restrict yourself to using codeigniters native AR.

For role/permissions I usually just store a json object to my permissions column in say users. I prefer this over using a more complicated technique

In my main Controller(non-restrictive) I just create a permissions(array)var and loop through it inside my child controllers to implement a restriction.

example:

sql column

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

main controller

protected $permissions = array();

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

extended children

if(in_array('r', $this->permissions))
{
   //user can read something
}
月下客 2025-01-05 09:37:12

我喜欢吃喝玩乐的答案,所以我将其发布在这里(他没有发布):

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

我更喜欢使用加盐哈希。我通常会做的就是把他们的
纯文本密码并向其添加从 $config 项派生的字符串
我调用 $config['encryption_salt']。然后我运行新建的字符串
通过php的sha1函数并将结果存入数据库。

对于授权,我通常会构建权限查找
我的数据库中的表并为用户分配其用户中的permission_id值
记录。然后我的网站可以有条件地允许或禁止
基于他们的permission_id的活动

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

I like skittles answer so I post it here (he is not posting):

I'm pretty sure this is not what you wanted to hear, but I prefer to
roll my own classes. I'm not afraid to re-invent the wheel

I prefer to use a salted hash. What I will typically do is take their
plain text password and add a string to it derived from a $config item
I call $config['encryption_salt']. Then I run the newly built string
through php's sha1 function and store the result in the database.

As for authorization, I will typically build a permissions lookup
table in my db and assign users a permission_id value in their user
record. Then my site can be conditionalized allow or disallow
activities based on their permission_id

If Skittle will post answer I'll mark it

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文