问题描述
我正在创建一个 Laravel 应用程序,我正在尝试掌握HTTP 会话的概念。我注意到我在基本层面上并没有真正理解它(例如,究竟发生了什么)。
在互联网上,除了一些基本的东西(获取和检索数据,以及一些其他常见的东西)之外,没有太多可用的信息。
我想更好地理解它,因此如果有人可以为我澄清以下内容,那将非常有帮助:
-
会话究竟是什么?驱动程序是什么意思?
(Laravel 提供:“文件”、“cookie”、“数据库”、“apc”、“memcached”、
“redis”、“dynamodb”、“array”。)当我选择e
file
vscookie
时会发生什么? - 会话到期意味着什么?那是当用户导航离开时,还是仅在浏览器中的特定时间?例如。如果我在入职期间将用户重定向到某个 OAuth,这是否意味着会话是否过期?
非常感谢!
解决方法
如您所见,session
取决于您选择的 driver
,同时您也可以在 config\session.php
中选择超时。
在 Cookie
的情况下,会话将在两种情况下过期:
- 一旦 cookie 过期/删除。
- 或者
(current_time - cookie_creation_time) > session_timeout
中设置的session.php
。
在所有驱动程序中,有一件事是共同的:每当您访问网站,并向服务器发出请求时,它会添加上次访问时间并从那里计算会话超时。
当用户从浏览器导航并且 cookie 仍然存在并且没有过期时,用户将被识别并且会话将保持不变。
我希望它更清楚...如果没有,请告诉我。我会分享一些例子。