Egg.js 中 Cookie 的设置和获取

cookie:
1、可以实现 同一个浏览器访问同一个域的时候 不同页面之间的数据共享
2、实现数据的持久化 (关闭浏览器重新打开以后数据还存在)
第一个参数:cookies的名称
第二个参数:cookies的值
第三个参数:配置
设置cookie
this.ctx.cookies.set('username', 'zhangsan');
获取cookie
this.ctx.cookies.get('username');
清除cookie
this.ctx.cookies.set('username', null); // 或者设置 maxAge 过期时间为 0
默认情况:cookies当浏览器关闭以后就销毁了
注意:默认情况下面 egg.js 里面的cookie没法设置中文
// 如果cookie加密以后就可以设置中文cookie (encrypt: true)
this.ctx.cookies.set('userInfo', '张三', {
  maxAge: 1000*3600*24, // cookie存储一天 设置过期时间后关闭浏览器重新打开cookie还存在
  httpOnly: true, // 仅允许服务获取,不允许js获取
  signed: true, // 对cookie进行签名 防止用户修改cookie
  encrypt: true // 是否对cookie进行加密 如果cookie加密那么获取的时候要对cookie进行解密
});

// 获取加密的cookie
var userInfo = this.ctx.cookies.get('userInfo', {
  encrypt: true
});

路由跳转:

async loginOut() {
  // 清除cookies
  this.ctx.cookies.set('userInfo', null);

  this.ctx.redirect('/news'); /*路由跳转*/
}

.

原文地址:https://www.cnblogs.com/crazycode2/p/12444085.html