1.1.0 • Published 3 years ago

session-center v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

Session Center

Small, fast minimalist session manager for node.

NPM npm

Installation

this module is server side only, install it by next command:

$ npm install session-center

Features

  • Centralized management session
  • Simple to generic or remove session
  • Support TS
  • Uncoupled, not require any framework

Quick start

//in js
const sessionCenter = new SessionCenter(config?)
// in ts
const sessionCenter = new SessionCenter < sessionContent?>(config?)

Config

all property are not required

propertytypedefaultdescription
namestringsessionIddefine the key of session in cookie
maxAgenumber-duration of one session,unit with second
expiresboolean-set both expire date and maxAge
domainstring-domain or a specified URI, if not specified, it will be the web URI
securebooleantrueif set as true, cookie will only be transmitted over secure protocol as https
pathstring-document location of the cookie
httpOnlyboolean-weather allow js get the cookie, it can help to mitigate xss attack
sameSiteboolean ¦ lax ¦ strict ¦ nonelaxlimits the scope of the cookie, and true is same as strict, false will not set it, more information please refer to rfc6265
singlePointboolean-one user can only active in one client, if it specified as true, the idKey must also be specified
idKeystring-the union value of sessionContent's key to identify different users
secretSaltstring ¦ Buffer ¦ TypedArray ¦ DataViewrandom 32 bytes buffersalt for generic cookie's hash

notice: If neither expires nor max-age specified, it will expire at the end of session.

Usage

  1. sessionCenter.removeSession(req: IncomingMessage, res: ServerResponse): void;

    remove session content of current request.

  2. sessionCenter.getSession(req: IncomingMessage | string, res?: ServerResponse): SessionContent | false;

    1. if typeof res === 'string': get session of current cookie, if get false, means this cookie is invalidation, you should remove it later.
    2. req and res should both be specified, it will auto remove cookie if cookie is expires
  3. sessionCenter.setSession(sessionContent: SessionContent, req?: IncomingMessage, res?: ServerResponse): string;

    store session content and set cookie to response and return the cookie string. if req and res are both not specified, user should set the return cookie to response header later.

  4. sessionCenter.remove(filter?: ((SessionContent: SessionContent) => boolean))

    accept a filter function, all stored session which passed filter fun will be removed, or clear all session when no filter is specified.

  5. sessionCenter.find(filter: ((SessionContent: SessionContent) => boolean)):SessionContent[]

    return all session passed specified filter with an array

1.1.0

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago