我已正确安装Ion Auth并在我的服务器上运行。我还有默认的CodeIgniter 2 “新闻”教程在同一个 CI 安装中工作。我只是在玩弄并好奇使用身份验证系统“封闭”或保护整个应用程序的正确方法。
对于这个问题,让我们使用 CI 附带的“新闻”教程。
在我的控制器的index()
函数中news.php
,我添加了条件代码来检查用户是否已登录。如果没有,用户将被带到登录屏幕。
public function index() {
$data['news'] = $this->news_model->get_news();
$data['title'] = 'News archive';
if ($this->ion_auth->logged_in()) {
$this->load->view('templates/header', $data);
$this->load->view('news/index', $data);
$this->load->view('templates/footer');
} else {
redirect('auth/login', 'refresh');
}
}
我可以看到这是可行的,但直接的缺点是控制器中的每个函数也必须使用类似的条件逻辑进行修改,以保护所有其他页面视图。例如 - 检查登录,显示页面,否则转到登录页面......一遍又一遍。
这是它应该做的方式吗?
如果一个应用程序已经构建并且正在运行,并且只是想保护它,该怎么办?添加条件逻辑来检查控制器中每个页面视图的登录状态似乎不必要地冗长。
是否可以在一个地方保护整个应用程序(所有视图)以最大限度地减少代码修改?如果是这样,怎么做?