6 Cookie 的使用

  • cookie 是存储于访问者的计算机中的变量。可以让我们用同一个浏览器访问同一个域名的时候共享数据。
  • HTTP 是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页面,服务器无法认识到这是同一个浏览器在访问同一个网站。每一次的访问,都是没有任何关系的。

ctx.cookies.set(key, value, options)

1
this.ctx.cookies.set('name','zhangsan');

ctx.cookies.get(key, options)

1
this.ctx.cookies.get('name')

1
this.ctx.cookies.set('name',null);

或者设置 maxAge 过期时间为 0

https://eggjs.org/en/core/cookie-and-session.html#container

1
2
3
4
5
6
7
ctx.cookies.set(key, value, {
maxAge:24 * 3600 * 1000,
httpOnly: true, // 默认情况下是正确的
encrypt: true, // cookie在网络传输期间加密
ctx.cookies.get('frontend-cookie', {
encrypt: true
});

###

6.4.1 第一种解决方案

1
2
3
console.log(new Buffer('hello, world!').toString('base64'));
// 转换成 base64字符串:aGVsbG8sIHdvcmxkIQ==
console.log(new Buffer('aGVsbG8sIHdvcmxkIQ==', 'base64').toString()); // 还原 base64字符串:hello, world!

6.4.2 第二种解决方案

1
2
3
4
5
ctx.cookies.set(key, value, {
maxAge:24 * 3600 * 1000,
httpOnly: true, // 默认情况下是正确的
encrypt: true, // cookie在网络传输期间进行加密
});