budibase/packages/server/middleware/session.js

28 lines
1.4 KiB
JavaScript

const session = require('koa-session');
module.exports = (config, app) => {
const sessionConfig = {
key: 'budi:sess', /** (string) cookie key (default is koa:sess) */
/** (number || 'session') maxAge in ms (default is 1 days) */
/** 'session' will result in a cookie that expires when session/browser is closed */
/** Warning: If a session cookie is stolen, this cookie will never expire */
maxAge: 86400000,
autoCommit: true, /** (boolean) automatically commit headers (default true) */
overwrite: true, /** (boolean) can overwrite or not (default true) */
httpOnly: true, /** (boolean) httpOnly or not (default true) */
signed: true, /** (boolean) signed or not (default true) */
rolling: false, /** (boolean) Force a session identifier cookie to be set on every response. The expiration is reset to the original maxAge, resetting the expiration countdown. (default is false) */
renew: false, /** (boolean) renew session when session is nearly expired, so we can always keep user logged in. (default is false)*/
store: {
get: async (key, maxAge, { rolling }) => ({key}),
set: async (key, sess, maxAge, { rolling, changed }) => ({key}),
destroy: async (key) => ({})
}
};
return session(
sessionConfig,
app
);
}