Skip to main content

Sessions & Security

Tracera uses Redis-backed server-side sessions with comprehensive security middleware.

Session Management

Sessions are managed by SCS (alexedwards/scs) with a Redis store.

Session Lifecycle

EventBehavior
LoginNew session created, user ID stored, secure cookie set
RequestSession loaded from Redis via cookie, user context injected
LogoutSession destroyed in Redis, cookie cleared
ExpirySessions automatically expire after the configured lifetime

Configuration

VariableDefaultDescription
SESSION_SECRET(required)Signing key for session cookies. Minimum 32 bytes.
SESSION_LIFETIME_HOURS72Session duration in hours
SESSION_COOKIE_SECUREAuto-detectedSet true for HTTPS. Auto-derived from BASE_URL scheme.
Generate a session secret:
openssl rand -base64 32
AttributeValue
HttpOnlytrue — not accessible via JavaScript
SameSiteLax — CSRF protection for top-level navigations
Securetrue when BASE_URL uses HTTPS
Path/

Security Middleware

RequireAuth

Protects endpoints that require an authenticated user. Returns 401 Unauthorized if no valid session exists. Applied to:
  • POST /api/v1/auth/logout
  • GET /api/v1/auth/providers
  • GET /api/v1/auth/steam (account linking)
  • GET /api/v1/portfolio
  • POST /api/v1/portfolio/import

CSRF Protection

State-changing endpoints require a CSRF token:
  1. Client fetches token via GET /api/v1/auth/csrf
  2. Token is included in X-CSRF-Token header on POST requests
  3. Backend validates token matches the session

Rate Limiting

Authentication endpoints are rate-limited to 20 requests per minute per IP address. This prevents:
  • Brute-force login attempts
  • Magic link request flooding
  • OAuth callback abuse

Security Headers

Every response includes:
HeaderValuePurpose
X-Content-Type-OptionsnosniffPrevent MIME sniffing
X-Frame-OptionsDENYPrevent clickjacking
Referrer-Policystrict-origin-when-cross-originControl referrer leakage
X-XSS-Protection1; mode=blockXSS filtering
The Next.js frontend adds additional security headers including Content Security Policy (CSP) and Strict-Transport-Security (HSTS).