Skip to main content
zerotal

Documentation


Documentation / @zerotal/session / SessionDriver

Interface: SessionDriver

Defined in: session/src/drivers/CookieDriver.ts:27

Contract every session backend implements.

A driver is responsible for reading a session out of the incoming request and writing it back onto the outgoing response. SessionMiddleware calls loadFromRequest before the pipeline and saveSession after it. Implementations decide where data lives — inside the (encrypted) cookie (CookieDriver) or server-side keyed by a cookie ID (RedisDriver).

See

Methods

loadFromRequest()

loadFromRequest(request): Promise<SessionPayload>

Defined in: session/src/drivers/CookieDriver.ts:33

Read and decode the session for an incoming request. Must return a fresh payload (new UUID, empty data) when no valid session cookie is present.

Parameters

request

Request

The incoming request to read the session cookie from.

Returns

Promise<SessionPayload>


saveSession()

saveSession(id, data, response): Promise<void>

Defined in: session/src/drivers/CookieDriver.ts:41

Persist the session for id and attach the appropriate Set-Cookie header to the response.

Parameters

id

string

Session ID to save under.

data

Record<string, unknown>

The session data to persist.

response

Response

Response to append the session cookie to.

Returns

Promise<void>


destroy()?

optional destroy(id): Promise<void>

Defined in: session/src/drivers/CookieDriver.ts:48

Remove a session's server-side record (e.g. its Redis key). Optional: pure client-side drivers like CookieDriver store nothing on the server. Called by SessionMiddleware for IDs abandoned by regenerate(), so a pre-regeneration session cannot be replayed until its TTL expires.

Parameters

id

string

Returns

Promise<void>