【发布时间】:2012-02-10 06:27:48
【问题描述】:
我在我的 codeigniter 应用程序中使用了很棒的codeigniter authentication library ion auth 创建了用户身份验证,身份验证工作正常,但是当我注销并单击浏览器的后退按钮时,我可以浏览我在我的应用程序中访问过的所有页面这引起了对用户隐私的担忧,但是如果我尝试刷新页面,它会识别出我已注销。当用户单击浏览器的后退按钮时,如何强制浏览器重新加载?任何有关如何解决此问题的建议将不胜感激..
编辑
控制器注销功能
function logout() {
//log the user out
$logout = $this->ion_auth->logout();
//redirect them back to the page they came from
redirect('auth', 'refresh');
}
这是来自ion auth的注销功能
public function logout() {
$this->ci->ion_auth_model->trigger_events('logout');
$identity = $this->ci->config->item('identity', 'ion_auth');
$this->ci->session->unset_userdata($identity);
$this->ci->session->unset_userdata('group');
$this->ci->session->unset_userdata('id');
$this->ci->session->unset_userdata('user_id');
//delete the remember me cookies if they exist
if (get_cookie('identity')) {
delete_cookie('identity');
}
if (get_cookie('remember_code')) {
delete_cookie('remember_code');
}
$this->ci->session->sess_destroy();
$this->set_message('logout_successful');
return TRUE;
}
我正在使用 codeigniter 2.0.3
提前谢谢..
【问题讨论】:
-
显示一些代码...我敢打赌你不会在每个页面上检查“已登录”这可能是为什么,只在登录时完成。需要检查您的“安全区域”中的每一页
-
我确实检查过了,这就是为什么当我重新加载页面时它会将我重定向到登录页面,看起来当有人注销时页面没有重新加载
-
也许你还没有完全退出,没有任何代码很难说,发布一个典型的控制器设置,因为我在 CI 上的会话中从未遇到过这个问题。
-
他们实际上已经注销了,但是你能看到的页面仍然是浏览器缓存的页面。
-
@Jakub 我已经编辑了我的问题。我注销,当我尝试单击任何链接或重新加载页面时,这可以证明是被重定向到登录页面。
标签: php codeigniter authentication