【发布时间】:2019-05-27 06:22:53
【问题描述】:
当我的 Laravel session-cookie 每次刷新时都会更改过期时间并且通常在 2 次刷新后过期时,我遇到了问题。
我认为预期的功能是在您最后一次与服务交互后 x 分钟过期,但我的功能似乎非常不同。让我详细说明一下:
在我的 Laravel .env 文件中
APP_TIMEZONE="Pacific/Auckland"
通过 CLI 访问 PHP 我得到了与本地时间有关的输出:
php -a
Interactive shell
php > echo date("Y-m-d H:i:s");
2018-12-30 04:08:09
php > echo date_default_timezone_get();
UTC
php > echo date('I');
0
上面给出的时间差一个小时。我认为 PHP 被错误配置为夏令时。我的 cookie 访问时间也减少了一个小时,因此我假设。
-
登录(成功)
- 到期日期:
Mon, 31 Dec 2018 03:53:21 GMT - 上次访问时间:
Sun, 30 Dec 2018 03:53:21 GMT
- 到期日期:
-
刷新 #1(成功)
- 到期日期:
Sun, 30 Dec 2018 05:53:31 GMT - 上次访问时间:
Sun, 30 Dec 05:53:31 GMT
- 到期日期:
-
刷新 #2(注销)
- 到期日期:
Sun, 30 Dec 2018 05:53:39 GMT - 上次访问时间:
Sun, 30 Dec 2018 05:53:39 GMT
- 到期日期:
这是它发生的视频:https://youtu.be/ssPAn5aE0ME
我本以为我的 Expires on value 会提前到我上次访问应用程序时的 24 小时(这是我的会话超时设置)。
任何帮助将不胜感激!
【问题讨论】:
-
请尝试在您的
.env文件中设置TIMEZONE=Pacific/Auckland。另外我想交互式 shell 不会加载您的.env文件。请改用tinker。 -
给你:Psy Shell v0.9.9 (PHP 7.1.19 — cli) by Justin Hileman >>> echo date("Y-m-d H:i:s"); 2018-12-31 10:45:17 >>> 回显 date_default_timezone_get();太平洋/奥克兰 >>> 回声日期(“我”); 1 这些值都准确到我当地的时区,我已经得到了这个集合:APP_TIMEZONE="Pacific/Auckland"
-
是的,实际上基于 PsyShell 的 Laravel Tinker...
-
CLI 应用程序访问不会影响浏览器的会话(如果我正确关注您的话)。
标签: php laravel laravel-5 session-cookies pyrocms