gpt4 book ai didi

session - CakePHP session 更新但 cookie 过期不更新

转载 作者:行者123 更新时间:2023-12-02 00:15:51 25 4
gpt4 key购买 nike

简短问题:

为什么当我的 session 的过期时间在服务器上更新时,我的 session cookie 的过期时间没有在浏览器中更新?

长问题:

我发布了similar question几周前就有过此事,但当时我并不了解所有事实。我现在有了更多详细信息,并且问题的性质已发生变化,因此我将其作为新问题发布。

首先,在 CakePHP 2 中,我使用以下 session 设置了 APP/Config/core.php:

    Configure::write('Session', array(
'defaults' => 'database',
'cookie' => 'mycookie',
'timeout' => 1 // 1 minute - just for testing
));

因此,我在我的应用程序中加载一个页面,该页面在数据库中创建 session 。到目前为止一切都很好。

该 session 被标记为在 1341288066 到期,即 Tue, 03 Jul 2012 04:01:06 GMT。再说一次,这太棒了,因为距离现在还有 1 分钟。正是我想要的。

如果我查看 Firefox 的 cookie 屏幕,我会发现 cookie 正如我所期望的那样:

    Name: mycookie
Content: aqm0gkmjfsuqje019at8cgsrv3
Host: localhost
Path: /
Send for: Any type of connection
Expires: Tue 03 Jul 2012 11:01:06 AM ICT // (04:01:06 GMT)

现在,在这 1 分钟的窗口内,我返回我的应用程序并刷新页面。然后,我检查 session 以查看它是否已更新。它针对 session ID aqm0gkmjfsuqje019at8cgsrv3 显示 1341288122,该 ID 等于 Tue, 03 Jul 2012 04:02:02 GMT,这又是我期望。 session 过期时间已更新为 self 上次重新加载页面后的 1 分钟。

不幸的是,浏览器中的 cookie 仍设置为过期:2012 年 7 月 3 日星期二 11:01:06 AM ICT(即:04:01:06 GMT )这正是它的作用,这意味着下次我按下刷新时,Cake 会生成一个全新的 session ID,即使旧的 session ID 在技术上仍然有效。

我的问题基本上是这里发生了什么?为什么浏览器中的 cookie 没有更新为新的到期日期?

最佳答案

您发现的问题确实出乎意料,并结束了本应保持事件状态的 session 。

这是CakePHP如何使用PHP的Session函数的结果。 CakePHP bugtracker 中有一个条目 ( #3047 ),其中 Mark Story (CakePHP 开发人员) agrees这应该被修复

I can agree that the cookies should be updated alongside the session times stored in the session. However, that's not how PHP's internal features for session handling work. There seem to be a few different ways to workaround this issue.

由于这将改变当前的行为(无论它可能有多奇怪),因此修复被推迟到版本 2.3。

I think managing the cookie state outside of PHP is going to be the most appropriate solution. I don't know how safe of a change this is for existing applications though. Changing how sessions works can be dramatic change and allowing users to stay logge din much longer might not be what all developers are expecting.

关于session - CakePHP session 更新但 cookie 过期不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11304390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com