首页 > 解决方案 > Codeigniter 会话每隔随机秒插入数据库(AJAX 应用程序)

问题描述

我正在开发 Codeigniter 最新版本 3.1.9。我正在开发一个移动应用程序,我使用 CI 进行客户端和服务器之间的 API 调用。但是今天我注意到在会话表中创建了大量的行。(我选择将会话存储在数据库中 - 下面的配置文件详细信息)。有趣的是只有 5-6 个开发人员测试帐户可用,并且生成了大约 14,000 多个会话。我确定这根本不正常,我遗漏了一些东西,或者框架在 API 调用方面存在问题。

我希望我的用户登录一次并且永远不会注销,直到他们故意按下注销按钮,所以我已经做出sess_expiration了更大的价值。我还将在下面编写 cookie 配置。无限时间的登录工作,会话存储和检索工作,但我现在对会话表中生成的大行感到困扰。

$config['sess_cookie_name'] = 'db_session';
$config['sess_expiration'] = 2307200;
$config['sess_save_path'] = 'system_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
$config['cookie_domain']    = '';
$config['cookie_path']      = '/';
$config['cookie_secure']    = FALSE;
$config['cookie_httponly']  = FALSE;

想知道我是否可以创建一个 PHP cron 代码并每天运行它,通过比较它的时间戳来删除特定用户的任何旧会话。或者,如果似乎有更好的解决方案或修复,请帮助。

编辑 我使用 cloudflare 保护。但我希望它与IMO无关。

编辑 2 经过深入研究,我通过下载 blob 文件检查了数据库值,似乎 cloudflare 正在为每个运行该应用程序的用户创建新的 IP 地址,因此使用新的 IP 地址生成新行。所以现在我在想如果我删除该用户以前的会话行,会话是否仍然有效。将更新。

标签: phpcodeignitersessioncookies

解决方案


推荐阅读