手动设置会话到期时间 - CodeIgniter

Sir*_*gar 22 codeigniter session-timeout

如何在codeigniter中动态设置会话到期时间?

例如,如果用户登录并具有角色admin,则到期时间应该比用户登录没有admin角色的用户长.

谢谢.

Alp*_*ale 19

您可以通过在配置文件中增加此变量来更新会话到期时间:

$config['sess_expiration'] = 'somevalue'.
Run Code Online (Sandbox Code Playgroud)

设置$config['sess_expiration'] = 0,如果您希望它永不过期.

以下是CI论坛的一个很好的讨论:

在会话过期时动态设置配置不起作用

  • 人们继续推动这一点,但我认为通过阅读描述,这不是OP所要求的.他说"手动"可以通过这个答案(配置中的常量值)完成,但如果你读到他实际上想要做的事情,他就意味着"动态地"根据登录的用户角色.所以设置值配置文件无济于事,因为无论用户角色如何,它都是相同的值. (5认同)

KDa*_*awg 11

$data = array(
'username' => $this->input->post('username'),
'ADMIN_is_logged_in' => true
);

$this->session->sess_expiration = '14400';// expires in 4 hours
$this->session->set_userdata($data);// set session
Run Code Online (Sandbox Code Playgroud)

  • 不,在会话启动后更改会话过期时间不起作用,也不会起作用,我今天对此进行了测试。 (2认同)