0.1.1 • Published 6 years ago

warriortrading.hermes.common.session v0.1.1

Weekly downloads
2
License
ISC
Repository
github
Last release
6 years ago

warriortrading.hermes.common.session

session management includes create, expand, delete, query session in redis

REFs

https://warriortrading.atlassian.net/wiki/spaces/WT/pages/14778416/Session+Management+Technical+Design

Installation

npm install warriortrading.hermes.common.session

How to

Require

  const SessionManagement = require('warriortrading.hermes.common.session');

Optional Custom Config

  var opt = {
    jwt: {secret: 'your_session_jwt_secret'},
    redis: {host: 'your_redis_host'}
  };

  /* default configurations:
  {
    jwt: {
      audience: 'https://www.warriortrading.com',
      subject: 'anonymous',
      issuer: 'warrior',
      algorithm: 'HS256',
      expireInMinutes: '1440',
      secret: '---PLS-REPLACE-THIS---'
    },
    redis: {
      host: '127.0.0.1',
      port: '6379',
      keyField: 'userId',
      keyPrefix: 'session_'
    },
    expire: {
      lifeTime: 1200,
      expandedGap: 300 
    } 
  }
  */

Define a instance

var management = new SessionManagement(opt); // or = new SessionManagement();

Login

  let onPreviousLogout = (res) => {
    require('winston').info('Logout : ' + res.userId);
    require('winston').info('Logout : ' + res.session);
    require('winston').info('Logout : ' + res.CRM_JWT);
    require('winston').info('Logout : ' + res.expiredAt);
  };
  management.login({userId, CRM_JWT}, onPreviousLogout)
    .then(res => {
      require('winston').info('Login : ' + res.res);
      require('winston').info('Login : ' + res.session);
      require('winston').info('Login : ' + res.expiredAt);
      require('winston').info('Login : ' + res.remainingTime);
    });

Validate

  management.validate(session)
    .then(res => {
      require('winston').info('Validate : ' + res.res);
      require('winston').info('Validate : ' + res.expiredAt);
      require('winston').info('Validate : ' + res.remainingTime);
    })

Test

npm test
0.1.1

6 years ago

0.1.0

6 years ago