CodeIgniter仅允许在登录时访问某些控制器

CodeIgniter仅允许在登录时访问某些控制器,codeigniter,authentication,controller,Codeigniter,Authentication,Controller,我有一些CodeIgniter控制器,只有登录的用户才能访问这些控制器(即,$this->session->userdata('username')不为空)。如果未经认证的人员试图访问所述控制器,他们应收到: header('location: /auth/login'); 必须有一个更好的方法来做到这一点,而不是把 if (!$this->session->userdata('username')) header('location: /auth/login'); els

我有一些CodeIgniter控制器,只有登录的用户才能访问这些控制器(即,$this->session->userdata('username')不为空)。如果未经认证的人员试图访问所述控制器,他们应收到:

header('location: /auth/login');
必须有一个更好的方法来做到这一点,而不是把

if (!$this->session->userdata('username'))
    header('location: /auth/login');
else
{
    [rest of function]
}
在控制器中的每个函数前面

我知道DX_Auth有类似的功能,但我没有使用身份验证插件,我也不愿意这样做

谢谢

Mala

在创建类时执行用户登录检查,因此无论用户访问什么函数,它都会检查会话变量,并在失败时重定向到登录页面:

function className()
{
    parent::Controller();
    if(!$this->session->userdata('username')) header('location: /auth/login');
}

这是在创建
控制器/模型时调用
\uu构造函数的方法,或者它在codeigniter中的等效方法,或者至少我是这么理解的

啊,干杯,伙计:)我没想到要举例说明这些东西!是的,它很有魅力,非常感谢!对于只对特定函数进行“限制”的控制器,是否也有办法将其放入构造函数中?或者,我需要在函数前面粘贴一个if/头块吗?