HKUST-VISLab / koa-session-ts

A koa session store with memory, redis or others. Written in typescript
1 stars 0 forks source link
koa-session middleware redis typescript

koa-session-ts

Build Status npm version codecov David Greenkeeper badge

Generic session middleware for koa, easy use with custom stores such as redis or mongo, supports defer session getter.

This middleware will only set a cookie when a session is manually set. Each time the session is modified (and only when the session is modified), it will reset the cookie and session.

You can use the rolling sessions that will reset the cookie and session for every request which touch the session. Save behavior can be overridden per request.

Install

npm install koa-session-ts --save

Usage


import * as Koa from "koa";
import session from "koa-session-ts";

const app = new Koa();
app.use(session());

app.use(async ctx => {
  // the parsed body will store in ctx.request.body
  // if nothing was parsed, body will be an empty object {}
  console.log(ctx.session);
  console.log(ctx.sessionId);
  console.log(ctx.sessionSave);
  console.log(ctx.sessionStore);
  ctx.regenerateSession();
});

Options

Session Store

You can use any other store to replace the default MemoryStore, it just needs to inherient the BaseStore and implement the following APIs:

the api needs to return a Promise, Thunk or generator. And use these events to report the store's status.

Licences

MIT