stackpress
Version:
Incept is a content management framework.
36 lines (35 loc) • 1.7 kB
JavaScript
import Session from './Session';
export default function plugin(ctx) {
ctx.on('config', (_req, _res, ctx) => {
if (!ctx.config.get('session'))
return;
const key = ctx.config.path('session.key', 'session');
const seed = ctx.config.path('session.seed', 'abc123');
const access = ctx.config.path('session.access', {});
ctx.register('session', Session.configure(key, seed, access));
});
ctx.on('listen', (_req, _res, ctx) => {
if (!ctx.config.get('auth'))
return;
ctx.import.on('auth-signup', () => import('./events/signup'));
ctx.import.on('auth-signin', () => import('./events/signin'));
ctx.import.on('auth-signout', () => import('./events/signout'));
ctx.import.on('authorize', () => import('./events/authorize'));
ctx.import.on('request', () => import('./pages/authorize'));
if (!ctx.config.get('session'))
return;
ctx.import.on('me', () => import('./events/session'));
});
ctx.on('route', (_req, _res, ctx) => {
if (!ctx.config.get('auth'))
return;
ctx.import.all('/auth/signin', () => import('./pages/signin'));
ctx.import.all('/auth/signin/:type', () => import('./pages/signin'));
ctx.import.all('/auth/signup', () => import('./pages/signup'));
ctx.import.all('/auth/signout', () => import('./pages/signout'));
ctx.view.all('/auth/signin', 'stackpress/dist/session/views/signin', -100);
ctx.view.all('/auth/signin/:type', 'stackpress/dist/session/views/signin', -100);
ctx.view.all('/auth/signup', 'stackpress/dist/session/views/signup', -100);
});
}
;