我必须检查每个控制器中的会话。如果用户已注销,则重定向到登录页面。我怎么能在codeigniter中使用钩子,所以我不必在每个控制器中写入会话条件。帮助我。
我在application/hooks/Authenticate.php
中有以下代码
function __construct()
{
$this->CI =& get_instance();
}
function loginCheck()
{
if($this->session->userdata('role_id')=='' && $this->session->userdata('user_id')=='' && $this->session->userdata('client_id')==''){
redirect('login');
}
}
关注application/config/hooks.php
$hook['pre_controller'][] = array(
'class' => 'Authenticate',
'function' => 'loginCheck',
'filename' => 'authenticate.php',
'filepath' => 'hooks/authenticate',
'params' => array()
);
当我退出并按下浏览器后退按钮时,它再次将我带到登录部分。似乎会话没有被正确销毁。
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以通过为此设置功能来检查... 检查会话是否未设置然后只有登录时重定向...否则重定向usr在home / dashboard ...
function check_user_login()
{
if(! $this->session->userdata('logged_in'))
{
redirect('login');
}
if($this->session->userdata('user_active') == false)
{
redirect('your page name');
}
}