gpt4 book ai didi

codeigniter - 为什么关闭浏览器后 Codeigniter session 没有过期?

转载 作者:行者123 更新时间:2023-12-04 03:22:49 25 4
gpt4 key购买 nike

问题场景

如果用户 A 登录应用程序,则在 session 中设置用户 ID。完成一些任务后,用户 A 关闭浏览器并离开计算机。不久之后,用户 B 来打开浏览器,看到应用程序处于登录状态。用户 B 也可以打开一个内部 url,使用之前的 session 直接将他重定向到应用程序中,无需任何身份验证。

我的配置

$config['sess_cookie_name'] = 'cisession';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;

最佳答案

您可以覆盖或设置 Config Item dynamically .如果单纯看$config['sess_expire_on_close'] = TRUE;是否使 session 在浏览器窗口关闭时自动过期。

如果用户没有选中记住我复选框,则将其设置为 true。并且 session 将在用户关闭浏览器后过期。

如果他选中了“记住我”复选框,请将 $config['sess_expire_on_close'] 设置为 FALSE,例如

if($this->input->post('remember')) $this->config->set_item('sess_expire_on_close', '0'); //'remember' is checkbox name.

现在 session 在浏览器关闭后不会过期。
注意:此解决方案也在 Opera、Mozilla、Chrome 和 ie9 上进行了测试

关于codeigniter - 为什么关闭浏览器后 Codeigniter session 没有过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14359806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com