【问题标题】:Laravel Session Cookie Expiry ChangingLaravel 会话 Cookie 过期更改
【发布时间】: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 访问时间也减少了一个小时,因此我假设。

  1. 登录(成功)

    • 到期日期:Mon, 31 Dec 2018 03:53:21 GMT
    • 上次访问时间:Sun, 30 Dec 2018 03:53:21 GMT
  2. 刷新 #1(成功)

    • 到期日期:Sun, 30 Dec 2018 05:53:31 GMT
    • 上次访问时间:Sun, 30 Dec 05:53:31 GMT
  3. 刷新 #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


【解决方案1】:

我通过双重和三重检查我的 .env 文件和我的 PHP ini 文件中的时区设置解决了这个问题。

【讨论】:

    猜你喜欢
    • 2017-09-04
    • 2017-12-13
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 2020-10-18
    • 1970-01-01
    • 2018-07-09
    相关资源
    最近更新 更多