对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

Use HTTP Sessions

在本指南中,您可以学习;了解如何使用 Laravel MongoDB来设立HTTP会话。会话允许应用程序在多个服务器请求中存储有关用户的信息。应用程序将此信息存储在指定位置,以便在用户将来提出请求时访问权限该位置。

注意

会话处理程序实施

v5.4 Laravel MongoDB引入了专用的 MongoDbSessionHandler 类,该类扩展了 Laravel DatabaseSessionHandler 类以存储会话信息。mongodb 会话驱动程序会保存用户ID、IP地址和用户代理(如果存在)。

在 v5.3 及更早版本中,会话驱动程序使用 Symfony框架中的 MongoDbSessionHandler 类。

要学习;了解有关会话支持的更多信息,请参阅 Laravel 文档中的HTTP会话。

在注册会话之前,您必须在应用程序的 config/database.php文件中配置与MongoDB的连接。要学习;了解如何设立此连接,请参阅快速入门指南中的配置MongoDB连接步骤。

下一个,您可以通过以下方式之一选择会话驱动程序和连接:

  1. 在 .env文件中,设置以下环境变量:

    .env

    SESSION_DRIVER=mongodb# Optional, this is the default valueSESSION_CONNECTION=mongodb
  2. 在 config/session.php文件中,如以下代码所示:

    config/session.php

    <?php return [ 'driver' => 'mongodb', // Required 'connection' => 'mongodb', // Database connection name, default is "mongodb" 'table' => 'sessions', // Collection name, default is "sessions" 'lifetime' => null, // TTL of session in minutes, default is 120 'options' => [] // Other driver options];

以下列表描述了您可以在 options数组中设立的其他驱动程序选项:

  • id_field:用于存储会话ID 的自定义字段名称(默认:_id)

  • data_field:用于存储会话数据的自定义字段名称(默认:data)

  • time_field:用于存储时间戳的自定义字段名称(默认:time)

  • expiry_field:用于存储到期时间戳的自定义字段名称(默认:expires_at)

  • ttl:生存时间(以秒为单位)

我们建议您在 expiry_field字段上创建索引以进行垃圾集合。您还可以通过在存储会话信息的集合上创建TTL索引来自动使数据库中的会话过期。

您可以使用 Schema 构建器创建TTL索引,如以下代码所示:

Schema::create('sessions', function (Blueprint $collection) { $collection->expire('expires_at', 0);});

在索引定义中将时间值设置为 0 将指示MongoDB在 expires_at字段中指定的时钟时间使文档过期。

要学习;了解有关使用 Schema 构建器创建索引的更多信息,请参阅模式构建器指南的创建稀疏、 TTL和唯一索引部分。

要学习;了解有关TTL索引的更多信息,请参阅服务器手册中的通过设置TTL使集合中的数据过期。

给本页内容打分

在此页面上