Codeigniter会话在5分钟后过期


Codeigniter session expiration after 5 mins

我使用OTP(一次性密码)会话作为$this->session->set_userdata('otp')。我想将此会话的过期时间设置为5分钟(300秒)。对于代码中的所有其他会话,我希望过期时间与正常会话时间相同。如何做到这一点?

首先,您需要正确使用术语。"会话"就是全部,而据我所知,您只想为某个会话"项"设置TTL。

话虽如此,CodeIgniter2不能做到这一点,也不应该——2.x版本树不再受支持。

升级到CodeIgniter3,您将能够使用"tempdata"功能,它正是您想要的:

// This will make $_SESSION['otp'] available only for the next 5 minutes
$this->session->set_tempdata('otp', $your_value, 300);

顺便说一句,即使您跳过该参数,5分钟也是默认的TTL。