我正在使用CI挂钩来阻止访问应用程序而无需登录, 但我也在使用cron作业来完成一些计划任务,现在我不需要登录来安排任务,
下面是我用于钩子的控制器的代码,
public function checkSession()
{
if($this->CI->router->fetch_class() == "cron")
{
//How should i continue with Cron class??
}
elseif($this->CI->router->fetch_class() != "login")
{
// session check logic here...change this accordingly
if($this->CI->session->userdata['user_id'] == '' )
{
redirect('login');
}
}
}
现在我希望cron类在不检查用户会话和登录的情况下运行,
如何在If条件下继续使用cron类?
还是其他任何想法?
谢谢,
答案 0 :(得分:0)
即使您使用cronjob运行脚本,安全行为也是登录,例如,这可以使用cURL,您可以使用凭据创建会话,正常登录并根据权限执行脚本你有。
有关详细信息,请参阅以下主题:
Using curl with a username and password
答案 1 :(得分:0)
其他选项如果你坚持保持简单和安全对你来说不是一个大问题,你可以通过cronjob调用脚本时传递一个参数,如链接中所述: passing a command-line argument
或者您可以参考链接中提到的PHP基本技术: detect if script is run from a cron job