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'); /*路由跳转*/ }
.