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


codeigniter cron job with session checking hook

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

我的主要问题是,我的代码点火器应用程序使用了一个钩子来检查是否存在有效的会话,并且设置了$_session['user_id']。

通过终端运行我的应用程序,由于钩子的原因,它将无法工作。

有人能解决这个问题吗?

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

$this->input->is_cli_request()

它实际上只是

if (php_sapi_name() == "cli")

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

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

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

然后我通过GET传递。

因此,如果($this->input->get('auth')=='64字母数字字符串')

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