安装
npm i koa-session
示例
const Koa = require('koa'),
session = require('koa-session'),
router = require('koa-router')();
const app = new Koa();
app.keys = ['some secret hurr']; // cookie的签名
const CONFIG = {
key: 'koa.sess', /** (默认为 koa.sess) */
maxAge: 3000, /** cookie的过期时间 (number || 'session') maxAge 单位 ms (默认是1天) */
autoCommit: true, /** (boolean) 自动提交 headers(默认为true) */
overwrite: true, /** (boolean) 是否可以覆盖(默认为true) */
httpOnly: true, /** (boolean) true:只有服务器端能获取cookie(默认为true) */
signed: true, /** (boolean) 默认签名(默认为true) */
rolling: false, /** (boolean) 在每次请求时强行设置cookie,这将重置cookie过期时间(默认为false) */
renew: true, /** (boolean) true:在每次请求如果快过期进行设置,如果已经过期那么就过期了(默认为false)*/
// secure: true, /** (boolean) 安全 cookie*/
sameSite: null, /** (string) session cookie 相同站点配置 (默认为null,不设置) */
};
router
.get('/', async ctx => {
let data = ctx.session.name;
ctx.body = `<h1>${data}</h1>`;
})
.get('/login', async ctx => {
ctx.session.name = 'Lee'; // 设置session
ctx.body = '<a href="/">index</a>';
})
app
.use(session(CONFIG, app))
.use(router.routes())
.use(router.allowedMethods())
.listen(3000);
console.log('Server run in http://localhost:3000/login');
结果