ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 一、session简单介绍 session是另一种记录客户状态的机制,不同于Cookie保存在客户端浏览器中,session是保存在服务器上。 ## 二、session的工作流程 session的工作流程是基于cookie的。当浏览器访问服务器并发送第一次请求时,服务器端会创建一个session对象,生成一个类似于key,value的键值对。然后key(cookie)返回到浏览器(客户)端。浏览器下次再次访问时,携带key(cookie),找到对应的session(value)。客户的信息都保存在session中。 ~~~ const Koa = require('koa'); const app = new Koa(); const session = require('koa-session'); const router = require('koa-router')(); /* 配置session中间件 */ app.keys = ['some secret hurr']; /* cookie的签名 */ const CONFIG = { key: 'koa:sess', maxAge: 86400000, /* cookie的过期时间 【需要修改】*/ autoCommit: true, overwrite: true, httpOnly: true, /* true 表示只有服务器端可以获取cookie*/ signed: true, rolling: false, /* 每次请求都强制设置session,这将重置cookie过期时间 */ renew: false, /* 快过期的时候重新设置 【需要修改】*/ }; app.use(session(CONFIG, app)); app.use(router.routes()).use(router.allowedMethods()); router.get('/',async ctx=>{ ctx.session.userInfo = "chengchao" ctx.body = "首页" }) router.get('/detail',async ctx=>{ console.log(ctx.session.userInfo) ctx.body = "detail" }) app.listen(8080) ~~~