Requirements:
- Node.js 18+
- or Node.js 10+ with fetch and crypto polyfills
- npm v9+
npm install @byu-oit-sdk/session
@byu-oit-sdk/session
is the parent module of
@byu-oit-sdk/session-fastify,
@byu-oit-sdk/session-express, and
@byu-oit-sdk/session-dynamo. While this package technically
can be used on its own, those other packages are more purpose-built and well-documented than this one.
This package exports the following:
- A
Session
class that represents a users session data that can be stored and retrieved. - An abstract
SessionStore
class - A
MemorySessionStore
that implementsSessionStore
and acts as a basic, in-memory session store that should not be used in production but functions just fine while testing on a local machine.-
@byu-oit-sdk/session-dynamo also implements
SessionStore
and is recommended for production use.
-
@byu-oit-sdk/session-dynamo also implements
Though the MemorySessionStore shouldn't be used in production, its use is recommended for testing locally. It doesn't need any configuration to use, but there are some environment variables associated with the node-cache that it uses which can be overridden to change the default behavior.
Env Var Name | Purpose | Default Value |
---|---|---|
NODE_CACHE_TTL | This is the time-to-live as a number in seconds for every generated cache element. Set to 0 for unlimited lifespan. | 120 |
NODE_CACHE_CHECK_PERIOD | The amount of seconds to wait before performing automatic deletion checks. | 110 |
There are also some options that can be passed in the constructor:
Constructor Option Name | Type | Default | Purpose |
---|---|---|---|
maxLockTime | number | 10 | Optional. The max amount of seconds that a row can be locked before it is allowed to be forcibly unlocked. |
See the documentation of the repositories linked above for usage and configuration details.