Php 在多类型用户和HMVC中使用tank_auth

Php 在多类型用户和HMVC中使用tank_auth,php,codeigniter,hmvc,tankauth,Php,Codeigniter,Hmvc,Tankauth,首次与HMVC一起使用Tank Auth。在我的应用程序中,有两种类型的用户,一种是say student,另一种是institute。 我为每种用户类型创建了两个模块,并分离了tank auth库,用户的注册、登录和表彼此不同 现在,如果我尝试添加对两个用户都通用的任何其他页面(如主页),那么应该使用哪个库。 我知道必须有更好的解决方案来处理多用户问题。 请告诉我哪里做错了。我应该怎么做来解决这个问题。你说得对,有更好的方法来处理这个问题。复制用户/注册系统是错误的做法 您需要修改TankAu

首次与HMVC一起使用Tank Auth。在我的应用程序中,有两种类型的用户,一种是say student,另一种是institute。
我为每种用户类型创建了两个模块,并分离了tank auth库,用户的注册、登录和表彼此不同

现在,如果我尝试添加对两个用户都通用的任何其他页面(如主页),那么应该使用哪个库。
我知道必须有更好的解决方案来处理多用户问题。
请告诉我哪里做错了。我应该怎么做来解决这个问题。

你说得对,有更好的方法来处理这个问题。复制用户/注册系统是错误的做法

您需要修改TankAuth以包含用户类型列,然后检查该用户类型。我建议在“用户”表中为“用户角色”添加一个新列:

您可以将用户_类型处理为int或enum。我倾向于int,因为enum以后更难更改。您还可以为用户角色添加一个新表,但我通常只将它们存储在配置文件中

更改模式后,您需要在Tank_Auth代码中添加对新列的引用(以及可能的选项)。您需要将其包括在创建、更新(数据从tank auth controller:controllers/auth.php传递到模型)和查找函数中。我将向tank\u auth模型(application/models/tank\u auth/users.php)添加一个按用户角色查找的功能:

最后,您需要将用户角色设置为登录时会话,以便跟踪用户类型(以及他们可以访问的内容/功能)


我已经在几个项目中使用过Tank_Auth。

基于calvin所说的,codeigniter在保护您的应用程序方面做得很好,Tank Auth将验证它们,但是您需要不同的用户级别,这通常属于权限范围。作为开发人员,您的工作是确保codeigniter通过CSRF和XSS进行安全检查(我建议您在每个Validation规则中进行检查,而不是在全局范围内进行检查,特别是如果您的管理员需要添加任何不允许的标记,如“脚本”)。您可以看到我个人如何设置控制器,而不考虑我的身份验证库


您需要在users表中有一个名为“permissions”的行,该行可以是序列化数组或json编码的,也可以在google上搜索permissions bitmasking,这需要一个int字段,您的解决方案听起来不错,但在接受之前将等待其他人。
function get_user_by_role($role)
{
$this->db->where('LOWER(user_role)=', strtolower($role));

$query = $this->db->get($this->table_name);
if ($query->num_rows() == 1) return $query->row();
return NULL;
}