【问题标题】:codeigniter cron job with session checking hook带有会话检查钩子的 codeigniter cron 作业
【发布时间】:2015-02-12 06:09:57
【问题描述】:

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

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

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

有人对此有解决方案吗?

【问题讨论】:

  • 你能做这样的事情吗:检查脚本是否处于 cli 模式,如果是则跳过检查?

标签: php codeigniter


【解决方案1】:

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

$this->input->is_cli_request()

这真的只是

if (php_sapi_name() == "cli")

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

【讨论】:

    【解决方案2】:

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

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

    然后我通过 GET 传递它。

    所以我会有 if($this->input->get('auth') == '64 alphanumeric character string')

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-01
      • 1970-01-01
      • 2013-03-05
      • 2011-01-15
      • 1970-01-01
      • 2011-11-11
      相关资源
      最近更新 更多