cookie簡介:
- cookie 是存儲在計算機上的變量。當我們用同一個瀏覽器訪問同一個域名下的網頁的時候,都可以拿到cookie的值。
- 當我們初次訪問一個頁面的時候,服務器在http請求的相應報文中,命令瀏覽器儲存cookie。以後我們在同一個瀏覽器訪問該域時,http請求的報文都會攜帶cookie過去的,看下圖 :
初次訪問接口 : http://localhost:3000
訪問其他接口:
cookie使用:
- 設置cookie: ctx.cookies.set(name,value,options)
@params: name : string
value : string
options :object
@options的參數值:
maxAge 一個數字表示從 Date.now() 得到的毫秒數
expires cookie過期的 Date
path cookie 路徑, 默認是'/'
domain cookie域名
secure 安全 cookie 默認false,設置成true表示只有 https可以訪問
httpOnly 是否只是服務器可訪問 cookie, 默認是 true
overwrite 一個布爾值,表示是否覆蓋以前設置的同名的 cookie (默認是 false). 如果是 true, 在同一個請求 中設置相同名稱的所有 Cookie(不管路徑或域)是否在設置此Cookie 時從 Set-Cookie 標 頭中過濾掉。
cookie案例:
const Koa = require('koa');
const Router = require('koa-router')();
const App = new Koa();
Router.get('/',function (ctx) {
ctx.cookies.set('role','admin',{'httpOnly':false});
ctx.body = '首次設置cookie'
})
Router.get('/admin/article',function (ctx) {
console.log(ctx.cookies.get('role'));
ctx.body = '獲得cookie'
})
App.use(Router.routes());
App.use(Router.allowedMethods());
App.listen(3000,function () {
console.log('quick start at port 3000')
})