-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathexample.js
36 lines (30 loc) · 1.53 KB
/
example.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
const session = require("./index");
const Koa = require("koa");
const app = new Koa();
app.keys = ["some secret hurr"];
const CONFIG = {
useToken: true /** (boolean) use token-session or not (default true) */,
useCookie: true /** (boolean) use cookie-session or not (default true) */,
key: "KoaToken" /** (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)*/
};
app.use(session(CONFIG, app));
// or if you prefer all default config, just use => app.use(session(app));
app.use(ctx => {
// ignore favicon
if (ctx.path === "/favicon.ico") return;
let n = ctx.session.views || 0;
ctx.session.views = ++n;
ctx.body = n + " views";
});
app.listen(3000);
console.log("listening on port 3000");