0

在过去的几个小时里,我一直在尝试在我的登录屏幕上实现“记住我”选项,但没有成功。有人可以给我一点帮助吗?=D

我在 apache2/mysql 5.5/ubuntu 12.10 服务器中使用 cakephp 2.3.9。在“login()”方法中,在我的用户控制器中,我添加了代码:

if ($this->Auth->login()) {
 if($this->request->data('Usuario.remember')==="1"){
  CakeSession::write('Session.timeout', '144000');//100 dias
 }
 return $this->redirect($this->Auth->redirect());
}

我希望它会使特定的用户会话比平时更大,但它似乎适用于所有用户。我正在使用 cakephp 的默认身份验证组件。有人可以告诉我我做错了什么,我该怎么办?提前致谢 ;]

4

1 回答 1

2

我不知道有任何人用你接近它的方式来做到这一点。PHP 会话超时长度是在 PHP.ini 中 session.gc_maxlifetime 下定义的服务器范围设置。

我个人处理此问题的方法是覆盖您正在使用的会话处理程序,而不是使用 PHPSESSID cookie,而是创建自己的 cookie,您可以控制 cookie 的到期时间。然后,它可以保存一个自定义会话 ID,然后您的覆盖会话处理程序可以拾取并使用它来验证用户。

CakePHP 不是我太熟悉的东西,所以我不能在集成方面给你太多建议。

于 2013-09-24T18:50:13.623 回答