Als-session
Session based file storage as middleware.
Middleware initiation
Quick init
Usage with express as middleware.
const sessionMw = require("als-session");
app.use(sessionMw({}));
The example above demonstrates adding session middleware to an express application with default settings.
Basic init
Syntax:
const sessionMw = require('als-session');
const options = {}
let session = sessionMw(options);
app.use(session);
The sessionMw
function configures middleware for session management. Below are the available configuration parameters:
-
prefix
: String (1 to 3 characters)- Prefix for the session name.
- Default:
'sid'
.
-
path
: String- URL path for the session.
- Minimum length: 1 character.
- Default:
'/'
.
-
httpOnly
: Boolean- If
true
, the cookie is not accessible throughdocument.cookie
. - Default:
true
.
- If
-
secure
: Boolean- If
true
, the cookie is not sent in the response. - Default:
true
.
- If
-
maxAge
: Number- The lifespan of the session in milliseconds.
- Range: from 1000 to infinity.
- Default: 7 days (604800000 ms).
-
secret
: String- Secret for signing the cookie.
- Minimum length: 10 characters.
- Default: Automatically generated.
- available as
secret
text file insideals-session
- available as
-
log
: Function- Logging function for errors.
- Example:
(e) => {throw e}
. - Default:
console.error
.
-
dirPath
: String- Path for saving sessions.
- Default:
join(__dirname, '..', 'session')
.
Example for initiation
const sessionMw = require('als-session');
let session = sessionMw({
prefix: 'aaa',
path: '/dashboard',
httpOnly: false,
secure: false,
maxAge: 1000 * 60 * 60,
secret: 'some1234567',
log: (e) => { throw e },
dirPath: join(__dirname, 'sessions')
});
Session usage
Usage is straightforward. Typically, all you need is req.session
.
Syntax:
function(req, res) {
req.sessionStore: object // instance of File
req.sessionId: string // session ID (file name or key in memory storage)
req.session: object // Session object for storing user data
req.destroySession: function // function for destroying the session and creating a new one
}
sessionId
- is a name of file in sessions folder
Modifying session
req.session
is an object which saved after response sent.
req.session.key = "value"; // add a new value to session
let value = req.session.key; // get a value by key
delete req.session.key; // delete a value by key
Destroying session
Syntax:
await req.destroySession();