1.5.0 • Published 4 years ago

session-file-store v1.5.0

Weekly downloads
15,141
License
Apache-2.0
Repository
github
Last release
4 years ago

session-file-store

Session file store for Express and Connect. Also you can use it with Koa

NPM Version NPM Downloads Node.js Version Build Status Coverage Status

Session file store is a provision for storing session data in the session file

Compatibility

Getting Started

Installation

$ npm install session-file-store

Running Tests

$ npm install
$ npm test

Options

  • path The directory where the session files will be stored. Defaults to ./sessions
  • ttl Session time to live in seconds. Defaults to 3600
  • retries The number of retries to get session data from a session file. Defaults to 5
  • factor The exponential factor to use for retry. Defaults to 1
  • minTimeout The number of milliseconds before starting the first retry. Defaults to 50
  • maxTimeout The maximum number of milliseconds between two retries. Defaults to 100
  • reapIntervalObject OUT Contains intervalObject if reap was scheduled
  • reapInterval Interval to clear expired sessions in seconds or -1 if do not need. Defaults to 1 hour
  • reapAsync use distinct worker process for removing stale sessions. Defaults to false
  • reapSyncFallback reap stale sessions synchronously if can not do it asynchronously. Default to false
  • logFn log messages. Defaults to console.log
  • fallbackSessionFn returns fallback session object after all failed retries. No defaults
  • encoding Object-to-text text encoding. Can be null. Defaults to 'utf8'
  • encoder Encoding function. Takes object, returns encoded data. Defaults to JSON.stringify
  • decoder Decoding function. Takes encoded data, returns object. Defaults to JSON.parse
  • fileExtension File extension of saved files. Defaults to '.json'
  • secret Enables transparent encryption support conforming to OWASP's Session Management best practices.
  • crypto.algorithm Defaults to aes-256-gcm but supports symmetric algorithms listed from crypto.getCiphers().
  • crypto.hashing Defaults to sha512 but supports hashing algorithms listed from crypto.getHashes().
  • crypto.use_scrypt Defaults to true. When not supported (node < 10.5) will fall back to the crypto.pbkdf2() key derivation function.

Usage

Express or Connect integration

Due to express >= 4 changes, we need to pass express-session to the function session-file-store exports in order to extend session.Store:

var session = require('express-session');
var FileStore = require('session-file-store')(session);

var fileStoreOptions = {};

app.use(session({
    store: new FileStore(fileStoreOptions),
    secret: 'keyboard cat'
}));

Examples

You can find basic work app examples for express, connect and koa frameworks in examples folder.

1.5.0

4 years ago

1.4.0

4 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.2.0

6 years ago

1.1.2

7 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.0

7 years ago

0.2.2

8 years ago

0.2.1

8 years ago

0.2.0

8 years ago

0.1.0

8 years ago

0.0.24

8 years ago

0.0.23

8 years ago

0.0.22

8 years ago

0.0.21

9 years ago

0.0.20

9 years ago

0.0.19

9 years ago

0.0.18

9 years ago

0.0.17

9 years ago

0.0.16

9 years ago

0.0.14

9 years ago

0.0.13

9 years ago

0.0.12

9 years ago

0.0.11

9 years ago

0.0.9

9 years ago

0.0.8

9 years ago

0.0.7

9 years ago

0.0.6

9 years ago

0.0.5

9 years ago

0.0.4

9 years ago

0.0.3

9 years ago

0.0.2

9 years ago

0.0.1

10 years ago