Kyrux
Voltar

Sessões

Sessões em memória server-side com TTL configurável via SESSION_TTL. O cookie kyrux_session é HttpOnly, SameSite=Strict e Secure em produção — a flag Secure é aplicada automaticamente pelo bootstrap quando APP_ENV=production, inclusive atrás de proxy reverso (nginx/Caddy).

⚠️ Estado em memória: sessões (e revogações de JWT) vivem no processo. Reiniciar/redeployar desloga todos os usuários, e múltiplas réplicas atrás de load balancer não compartilham sessões — nesse cenário, use sticky sessions no balanceador até existir backend externo (ex: Redis).

API de sessão direta

Use quando precisar de controle total sobre o que é guardado na sessão. Use Get/Set/Delete — são seguros para requisições paralelas da mesma sessão:

import "kyrux/core/security/session"

// Criar sessão manualmente
sess, err := fw.Sessions.New()
sess.Set("chave", valor)
session.SetCookie(ctx.Writer, sess.ID, ctx.Request.TLS != nil)

// Ler sessão do request
sess, ok := session.FromRequest(ctx.Request, fw.Sessions)

// Ler valor
val, ok := sess.Get("chave")

// Remover sessão
fw.Sessions.Delete(sess.ID)

Para autenticação com auth.User, use auth.Login e auth.Logout — veja a seção 15. Autenticação.