10.session
-- 未经授权禁止转载 --

     安装

           npm i koa-session


import Koa from 'koa'
import Router from '@koa/router'
import Session from 'koa-session'

const hostname = "127.0.0.1"
const port = 8008

const app = new Koa()
const router = new Router() //实例化一个 Router 对象

//koa-session 默认将 session 数据存储在客户端的 cookie 中
app.keys = ['session.dengruicode.com'] //设置会话签名的密钥
const CONFIG = {
    key: 'DR',  //存储在 cookie 中的键名
    maxAge:  24 * 60 * 60 * 1000,  //24小时 有效期(单位:毫秒)
    signed: true,  //是否启用会话签名, 用于防止CSRF攻击
    secure: false,  //是否仅通过 https 协议发送 cookie
}
app.use(Session(CONFIG, app))

router.get('/', async ctx => {
    //赋值
    ctx.session.name = "邓瑞"
    ctx.session.url = "dengruicode.com"
    if(!ctx.session.user){
        ctx.session.user = 100
    }else{
        ctx.session.user++
    }

    //取值
    let name = ctx.session.name
    console.log("name:",name)

    //删除
    //ctx.session = null //清空
    //delete ctx.session.name //删除 session 中的 name 属性

    ctx.body = "用户:" + ctx.session.user
})

app.use(router.routes()) //将定义在 router 对象中的路由规则添加到 app 实例中

app.listen(port, hostname, () => {
    console.log(`服务器已启动: http://${hostname}:${port}`)
})