首页 > 解决方案 > 仅当不活动时间介于 24 分钟和 55 分钟之间时,PHP 才会丢弃 session-cookie

问题描述

技术栈: Nginx > Apache > PHP > BitrixCMS。

问题:如果不活动时间介于 24 分钟和 55 分钟之间,那么 PHP 将通过发送新的 PHPSESSID cookie 作为响应来放弃会话。如果不活动时间大于 55 分钟,则 PHP 将通过响应而不使用新的 PHPSESSID cookie 来接受会话,并在处理具有 60 分钟旧 PHPSESSID 的进一步请求时完成操作。

OK 示例: “设置”请求和“完成”请求 30 分钟不活动。服务器通过在响应标头中发送新的 PHPSESSID 来丢弃会话

[REQUEST]
Request URL: https://example.com/set-up/
Request Method: POST
...
Cookie: PHPSESSID=21hg579oq7n28h0la7061dhsh5; ...
...
[RESPONSE]
...
Date: Tue, 08 Jun 2021 13:34:39 GMT
...
[REQUEST]
Request URL: https://example.com/complete/
Request Method: POST
...
Cookie: PHPSESSID=21hg579oq7n28h0la7061dhsh5; ...
...
[RESPONSE]
...
Date: Tue, 08 Jun 2021 14:03:44 GMT
Set-Cookie: PHPSESSID=97d4106db4d1095ad053d96f74366739; path=/ ...
...

NOK 示例: “设置”请求和“完成”请求,60 分钟不活动。服务器不会丢弃会话(没有 set-cookie 标头)并处理具有 60 分钟旧 PHPSESSID 的所有请求。

[REQUEST]
Request URL: https://example.com/set-up/
Request Method: POST
...
Cookie: PHPSESSID=qkfhm4udb1sd9p1bprj5o90c3i; ...
...
[RESPONSE]
...
Date: Wed, 09 Jun 2021 06:39:39 GMT
...
[REQUEST]
Request URL: https://example.com/complete/
Request Method: POST
...
Cookie: PHPSESSID=qkfhm4udb1sd9p1bprj5o90c3i; ...
...
[RESPONSE]
...
Date: Wed, 09 Jun 2021 07:39:15 GMT
...

问题:我知道这很可能是 PHP 代码中的错误,正在检查中。对这种情况有什么建议吗?任何可以在这里产生影响的配置?

标签: phpsession-cookies

解决方案


推荐阅读