带有会话检查挂钩的 codeigniter cron 作业

codeigniter cron job with session checking hook

我需要 运行 为我用 codeigniter 编写的应用程序创建一个 cron 作业。

我的主要问题是我的 codeigniter 应用程序使用了一个挂钩来检查是否存在有效会话,并且是否设置了 $_SESSION['user_id']。

运行 我通过终端的应用程序由于挂钩而无法运行。

有人对此有解决方案吗?

会话是为浏览器创建的,它们不会存在于 CLI 中。您可以使用:

$this->input->is_cli_request()

这真的只是

if (php_sapi_name() == "cli")

检查 CLI,并相应地处理事情。如果您需要模拟 运行 作为用户,您可以使用终端中存在的环境变量(如何操作取决于 OS),或者传入仅被 CLI 接受的参数,但这可能会使其他使用段的代码复杂化。

我 运行 遇到了同样的问题 运行 Cron 作业。

我设置了一个绕过会话登录的唯一密钥

然后我通过 GET 传递它。

所以我会有 if($this->input->get('auth') == '64 字母数字字符串')

为了增加安全性,您甚至可以有两个字段。例如 auth 和 confirm。这模仿了像 twilio 这样的服务为其 API 键工作的方式。