koa2中cookie的使用

发布时间 2023-09-28 16:45:13作者: 漫思

Koa中设置Cookie的值

ctx.cookies.set(name, value, [options]) 

 

options={
    maxAge:"000000000"       //cookie有效时长,单位:毫秒数
    expires:"0000000000"      //过期时间,unix时间戳
    path:"/"         //cookie保存路径, 默认是'/,set时更改,get时同时修改,不然会保存不上,服务同时也获取不到
    domain:".xxx.com"       //cookie可用域名,“.”开头支持顶级域名下的所有子域名
    secure:"false"       //默认false,设置成true表示只有https可以访问
    httpOnly:"true"     //true,客户端不可读取
    overwrite:"true"    //一个布尔值,表示是否覆盖以前设置的同名的 cookie (默认是 false). 如果是 true, 在同一个请求中设置相同名称的所有 Cookie(不管路径或域)是否在设置此Cookie 时从 Set-Cookie 标头中过滤掉。
}

Koa中获取Cookie的值 

ctx.cookies.get('name');

示例 

const Koa=require('koa');
let app = new Koa();
 
app.use( async ( ctx ) => {
  if ( ctx.url === '/index' ) {
    ctx.cookies.set(
      'cid', 
      'ddddd',    //可替换为token
      {
        domain: 'localhost',  // 写cookie所在的域名
        path: '/',       // 写cookie所在的路径
        maxAge: 10 * 60 * 1000, // cookie有效时长
        expires: new Date('2017-02-15'),  // cookie失效时间
        httpOnly: false,  // 是否只用于http请求中获取
        overwrite: false  // 是否允许重写
      }
    )
    ctx.body = 'cookie is ok'
  } else {
      console.log(ctx.cookies.get("cid"));
    ctx.body = '非index' 
  }
 
})
app.listen(3000)