php - 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 地址生成新行。所以现在我在想如果我删除该用户以前的会话行,会话是否仍然有效。将更新。
解决方案
推荐阅读
- r - 指示特定值第一次出现的新变量
- .net-core - 如何正确地将 DateTime 添加到 DotNet Core 应用程序?
- machine-learning - 使用 4 维数据的 keras 双向层
- android - 将android项目迁移到AndroidX时构建失败
- javascript - Cordova Android Emulator 给出 Uncaught SyntaxError: Unexpected identifier
- javascript - jQuery AJAX 调用 Vanilla JS,我错过了什么?
- bitlocker - 如何为 C 驱动器或任何驱动器启用 Bitlocker?
- typescript - setRoot 在 getActiveNavs/getRootNavById 上不起作用
- javascript - 特殊字符在引导工具提示标题 data-html 中不起作用
- javascript - Oauth 无法发布