带有会话检查挂钩的 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 键工作的方式。
我需要 运行 为我用 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 键工作的方式。