Skip to main content

Module session

Module session 

Source
Expand description

Server-side session store abstraction.

SessionStore is a trait; the app provides a concrete implementation (e.g. RedisSessionStore). SessionManager wraps the store, handles the session-ID cookie (signed via HMAC, same as CookieService), and exposes load_from_headers / create / save / delete.

RequestContext::session() returns the loaded session (if any) so handlers can read/write typed values without knowing how they’re stored.

§Usage

ctx.provide(SessionManager::new(
    RedisSessionStore::new(redis),
    SessionConfig {
        cookie_name: "arcly_session",
        ttl_secs:    3600,
        secret:      env_or("SESSION_SECRET", "change-in-prod"),
        ..Default::default()
    },
));

Structs§

Session
A single server-side session. Thread-safe via an interior RwLock.
SessionConfig
Configuration for SessionManager.
SessionManager
Orchestrates session lifecycle: cookie extraction, store lookup, creation, persistence, and deletion.

Traits§

SessionStore
Backend store for sessions. Implement this to plug in Redis, Postgres, etc.

Functions§

unix_now

Type Aliases§

SessionData