Sessão
O middleware de sessão no Lithe gerencia a configuração e o controle da sessão do usuário.
Usando o Middleware de Sessão
O Lithe inclui um middleware de sessão para gerenciar as sessões de usuários e suas variáveis. Para configurar o middleware na sua aplicação, adicione-o usando o método use()
:
use Lithe\Middleware\Session\session;
$app->use(session());
Isso garante que a sessão seja corretamente iniciada e configurada para todas as requisições.
Configurando o Middleware de Sessão
O middleware de sessão pode ser configurado com os seguintes parâmetros:
- lifetime: Define a duração da sessão em segundos. O padrão é 2592000 segundos (30 dias).
- domain: Define o domínio para o qual o cookie da sessão é válido. O padrão é
null
. - secure: Indica se o cookie da sessão deve ser enviado apenas em conexões seguras (HTTPS). O padrão é
false
. - httponly: Indica se o cookie da sessão deve ser acessível apenas através de requisições HTTP. O padrão é
true
. - samesite: Define o atributo SameSite do cookie da sessão. Pode ser
'Lax'
,'Strict'
ou'None'
. O padrão é'Lax'
. - path: Define o caminho onde os arquivos de sessão serão armazenados. O padrão é
'storage/framework/session'
.
Exemplo de configuração:
$app->use(Session([
'lifetime' => 3600,
'domain' => 'example.com',
'secure' => true,
'httponly' => true,
'samesite' => 'Strict',
'path' => PROJECT_ROOT . '/storage/framework/session',
]));
Usando Variáveis de Sessão
Após a configuração, você pode acessar e manipular variáveis de sessão através do objeto Request
. Aqui estão alguns métodos disponíveis:
-
put(string $name, mixed $value): void
Define uma variável de sessão.
$req->session->put('user', 'John Doe');
-
get(string $name, mixed $default = null): mixed
Recupera o valor de uma variável de sessão. Retorna o valor padrão se a variável não estiver definida.
$user = $req->session->get('user');
-
forget(mixed $name): void
Remove uma ou mais variáveis de sessão.
$req->session->forget('user');
-
destroy(): void
Destroi todas as variáveis de sessão.
$req->session->destroy();
-
isActive(): bool
Verifica se a sessão está ativa.
$isActive = $req->session->isActive();
-
regenerate(bool $deleteOldSession = true): bool
Regenera o ID da sessão. Se
$deleteOldSession
fortrue
, a sessão antiga será deletada.$req->session->regenerate();
-
getId(): string|false
Recupera o ID atual da sessão.
$sessionId = $req->session->getId();
-
setId(string $sessionId): bool
Define um novo ID para a sessão.
$req->session->setId('newSessionId');
-
all(): array
Recupera todas as variáveis de sessão.
$allSessionData = $req->session->all();
-
has(string|array $names): bool
Verifica se uma ou mais variáveis de sessão existem.
$hasUser = $req->session->has('user');
Considerações
- Criando o Diretório de Sessão: O middleware garante que o diretório para armazenar as sessões exista. Se não existir, ele será criado.
- Tratamento de Erros: Se ocorrer um erro durante a configuração ou inicialização da sessão, o middleware irá registrá-lo e continuar a execução.