CodeIgniter 仅允许在登录时访问某些 Controller

标签 codeigniter authentication controller

我有一些 CodeIgniter Controller 只能由登录的用户访问(即 $this->session->userdata('username') 不为空)。如果未经身份验证的人试图访问所述 Controller ,他们应该收到:

header('location: /auth/login');

必须有比放置一个更好的方法来做到这一点
if (!$this->session->userdata('username'))
    header('location: /auth/login');
else
{
    [rest of function]
}

在 Controller 中的每个功能前面...

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

谢谢!
马拉

最佳答案

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

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

这就是调用 __constructor 的方式。或者在您创建 controllers/models 时在 codeigniter 中等效,或者至少我是这么理解的!

关于CodeIgniter 仅允许在登录时访问某些 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2020815/

相关文章:

php - 我正在尝试使用数据库的日期范围检查当前日期,但遇到了 codeigniter 模型查询的问题

java - HTMLUnit : Determine if the "login" was successful

php - 如何检查用户是否通过 Laravel 上的 cookie session 进行身份验证?

java - 我应该在哪里放置需要访问数据库的验证代码?

grails - 从grails Controller 导航到上一页?

php - 如何按 ASC 或 DESC 日期对表格进行排序?

linux - Codeigniter 应用程序在本地主机 ubuntu 上显示空白页面

php - 在PHP中删除多个逗号

ruby-on-rails - Omniauth 为 Facebook 和 Twitter 提供从头开始的身份验证

c# - 仅 web api Controller 或 Controller 和 web api Controller