如何防止 Laravel 中的会话/cookie 刷新


How to prevent session/cookie refresh in Laravel?

我到处搜索,但找不到如何防止会话(cookie?

我现在正在将我的网站从Codeigniter迁移到Laravel。

在 Codeigniter 中,如果将会话过期时间设置为 1 小时,则即使您是否主动打开网站,会话也会在 1 小时后过期。

在 Laravel 中,每次打开页面时,会话总是会刷新。

例如,如果我在 00:20 登录并将过期设置为 1 小时(01:20),然后在 00:50 打开一个页面,则过期时间将刷新为 01:50。

我的问题是,如何在拉拉维尔防止这种行为?我希望它像Codeigniter一样保持在01:20。

您可以在

config/session.php中找到会话配置。

'lifetime' => 120, // in minutes, default 2 hours
'expire_on_close' => false,

就这样。下面是有关会话逻辑的说明。

届会的运作

Laravel的会话处理是完全逻辑的。我举个例子:

  • 我在下午 5:00 打开页面 A,会话将设置为 20 分钟。它过期 5.20 PM,仅当用户没有活动时!
  • 10分钟后,我打开B页。会话刷新,过期时间为"现在"+ 20 分钟
  • 理解?在用户的每个活动(每个新请求)之后,会话刷新/扩展

安全

Laravel刷新会话对您来说非常安全!攻击者"抓住"会话更加困难!

所以我会推荐你Laravel方法,而不是(过时的)CodeIgniter方法。