【发布时间】:2012-09-07 12:29:24
【问题描述】:
我已成功使用 code igniter 对用户进行身份验证,但现在如果用户在我的一个控制器中输入一个方法的路由,他们无需登录即可访问它。
我想停止对未登录的用户进行此访问,最好不使用第 3 方用户身份验证插件。
我有这个型号代码:
function login(){
$data = array(
'username' => $this->input->post('username'),
'logged_in' => TRUE
);
$this->session->set_userdata($data);
} //function login()
function logged_in(){
if($this->session->userdata('logged_in') == TRUE)
{
return TRUE;
}
return FALSE;
} //function logged in()
我有这个控制器代码:
function index($condition = FALSE){
if($this->admin_model->logged_in() === TRUE)
{
$this->books_page(TRUE);
}
else
{
$data = $this->style_model->admin_area();
$data['page_intro'] = 'Oops! Sorry, you must be logged in to view this page.';
$this->load->view('admin/not_logged_in', $data);
}
} //function index()
function books_page(){
$data = $this->style_model->admin_area();
$data['category_query'] = $this->admin_books_model->get_book_categories();
$data['page_title'] = 'Books';
$data['query'] = $this->admin_books_model->get_books();
$this->load->view('admin/books/books_admin', $data);
} //function books_page()
尚未登录的用户无法访问书籍方法,但之后他们可以访问任何其他方法,我只是想停止该访问并将错误页面传递给他们,通知他们必须登录。
提前致谢, 汤姆
【问题讨论】:
-
只是想一想,您可能会考虑进入TankAuth for CodeIgniter。它非常安全,一旦您学会它,生活就会非常变得轻松。 FWIW。
标签: codeigniter login