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