会话
配置
由于 HTTP 协定是无状态(Stateless)的,所以 session 提供一种保存用户数据的方法。Laravel 支持了多种 session 后端驱动,并通过清楚、统一的 API 提供使用。也内置支持如 Memcached、Redis 和数据库的后端驱动。
session 的配置文件配置在 config/session.php
中,请务必看一下 session 配置文件中可用的选项配置及注释。Laravel 默认使用 file
的 session 驱动,它在大多的应用中可以良好运作。
如果你想在 Laravel 中使用 Redis
sessions,你需要先通过 Composer 安装 predis/predis
扩展包 (~1.0)。
注意
如果你需要加密所有的 session 数据,就将选项 encrypt
配置为 true
。
注意
当你使用 cookie
作为 session 驱动时, 你永远不应该从 HTTP Kernel 中移除 EncryptCookie
中间件。如果你移除了这个中间件,你的应用容易遭受远程代码攻击。
保留键值
Laravel 框架在内部有使用 flash
作为 session 的键值,所以应该避免 session 使用此名称。
使用 Session
获取 session 有很多种方式,可以通过 HTTP request 类的 session
方法,Session
facade 或者 session
辅助函数。如果在调用 session
辅助函数时没有传入参数,会返回整个 session 对象。比如:
session()->regenerate();