Cookie 的使用

1、Cookie 简介

  • cookie 是存储于访问者的计算机中的变量。可以让我们用同一个浏览器访问同一个域 名的时候共享数据。

  • HTTP 是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页 面,服务器无法认识到这是同一个浏览器在访问同一个网站。每一次的访问,都是没有任何 关系的。

Cookie 设置语法:

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

例子:

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

Cookie 获取语法:

ctx.cookies.get(key, options)

例子:

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

清除 Cookie:

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

或者设置 maxAge 过期时间为 0

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

设置 cookie 建议的写法:

ctx.cookies.set(key, value, {
    maxAge:24 * 3600 * 1000,
    httpOnly: true, // by default it's true
    encrypt: true, // cookie 传输加密,获取的时候也要加上这个参数才行
});
ctx.cookies.get('frontend-cookie', {
    encrypt: true
});

第一种解决方案:

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

第二种解决方案:

ctx.cookies.set(key, value, {
    maxAge:24 * 3600 * 1000,
    httpOnly: true, // by default it's true
    encrypt: true, // cookies are encrypted during network transmission
});

encrypt 这个参数起的作用.

Last updated

Was this helpful?