Skip to content

koa-session plugin with support for mongoose within the Co.Koa environment

License

Notifications You must be signed in to change notification settings

jaysaurus/co-koa-session-plugin

Repository files navigation

Build Status Coverage Status Test for Vulnerabilities Greenkeeper badge

Co.Koa header

co-koa-session-plugin

Note as of [email protected] and higher, this plugin now requires co-koa-mongoose-plugin@1.1.0 or higher

koa-session plugin with support for mongoose within the Co.Koa MVC environment.

This plugin (available in the Co.Koa MVC from version @0.17.0 onwards) aims to consolidate koa-session and a modified implementation of koa-session-mongoose into one easy-to-install plugin module; thereby enabling secure session management that is handled via a session collection in your MongoDB database.

installation

add co-koa-session-plugin to a Co.Koa project instance via:

npm i co-koa-session-plugin --save

within your app.js ensure you have a connection setup to co-koa-mongoose-plugin. add the co-koa-session-plugin as a requirement and pass the SessionPlugin call to the MongoosePlugin as below:

const fs = require('fs');
const MongoosePlugin = require('co-koa-mongoose-plugin');
const SessionPlugin = require('co-koa-session-plugin');

if (fs.existsSync('./node_modules')) {
  const CoKoa = require('co-koa-core');
  try {
    const coKoa =
      CoKoa(__dirname)
        .launch(MongoosePlugin({ plugins: [SessionPlugin()] })); // <= HERE!
    ...

The SessionPlugin can optionally be called with a configuration object. The properties of this object are described below:

...
SessionPlugin({
  keys: ... // (optional) supply a reference to an array of keys to be used by app.keys, will defer to Co.Koa's defaults if keys are not supplied.
  name: ... // the name of the collection (default is "Session")
  expires: ... // the amount of time in seconds until the session expires
}));

Use

In a controller, your session object is exposed as below:

async 'GET /session' (ctx) {
  const { session } = ctx;
  let n = session.views || 0;
  session.views = ++n;
  ctx.body = `${n} view(s)`;
}

for more information on sessions, please see: koa-session.

(thanks to @mjbondra for koa-session-mongoose)

About

koa-session plugin with support for mongoose within the Co.Koa environment

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published