Menu Docs
Página inicial do Docs
///
Laravel MongoDB

HTTP Sessions

Neste guia, você pode aprender como configurar sessões HTTP usando Laravel MongoDB. As sessões permitem que seu aplicação armazene informações sobre um usuário em várias solicitações do servidor . Seu aplicação armazena essas informações em um local especificado que pode ser acessado em solicitações futuras que o usuário faça.

Observação

Implementação do manipulador de sessão

O v5.4 Laravel MongoDB introduz a classe dedicada

MongoDbSessionHandler que estende a classe Laravel DatabaseSessionHandler para armazenar informações da sessão. O driver de sessão mongodb salva IDs de usuário, endereços IP e agentes de usuário, se presentes.

Na versão5.3 e anteriores, o driver de sessão usa a classe MongoDbSessionHandler do framework Symfony.

Para saber mais sobre o suporte para sessões, consulte

Sessão HTTPna documentação do Laravel.

Antes de registrar uma sessão, você deve configurar sua conexão com o MongoDB no arquivo config/database.php do aplicativo. Para saber como configurar essa conexão, consulte a etapa

Configurar sua conexão MongoDB do guia de Início rápido.

Em seguida, você pode selecionar o driver da sessão e a conexão de uma das seguintes maneiras:

  1. Em um arquivo .env, definindo as seguintes variáveis de ambiente:

    .env
    SESSION_DRIVER=mongodb
    # Optional, this is the default value
    SESSION_CONNECTION=mongodb
  2. No arquivo config/session.php, conforme mostrado no seguinte código:

    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
    ];

A lista a seguir descreve outras opções de driver que você pode definir na array options:

  • id_field: Nome de campo personalizado para armazenar o ID da sessão (padrão: _id)

  • data_field: Nome de campo personalizado para armazenar os dados da sessão (padrão: data)

  • time_field: Nome de campo personalizado para armazenar o carimbo de data/hora (padrão: time)

  • expiry_field: Nome de campo personalizado para armazenar o carimbo de data/hora de expiração (padrão: expires_at)

  • ttl: Tempo de vida em segundos

Recomendamos que você crie um índice no campo expiry_field para coleta de lixo. Você também pode expirar automaticamente as sessões no banco de dados criando um índice TTL na coleção que armazena as informações da sessão.

Você pode utilizar o construtor Schema para criar um índice TTL, como mostrado no seguinte código:

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

Definir o valor de tempo como 0 na definição do índice instrui o MongoDB a expirar os documentos na hora especificada no campo expires_at.

Para saber mais sobre como usar o construtor Schema para criar índices, consulte a seção Criar índices esparsos, TTL e únicos do guia Construtor de esquemas.

Para saber mais sobre índices TTL, consulte Expirar dados de collections configurando TTL no manual do servidor.

Voltar

Integração de reconhecimento

Nesta página

  • Visão geral
  • Registrar uma sessão