一、Koa 設置 Cookie
ctx.cookies.set(name, value, [options])
通過
options
設置 cookiename
的value
:
maxAge
一個數字表示從 Date.now() 得到的毫秒數signed
cookie 簽名值expires
cookie 過期的Date
path
cookie 路徑, 默認是'/'
domain
cookie 域名secure
安全 cookiehttpOnly
服務器可訪問 cookie, 默認是 trueoverwrite
一個布爾值,表示是否覆蓋以前設置的同名的 cookie (默認是 false). 如果是 true, 在同一個請求中設置相同名稱的所有 Cookie(不管路徑或域)是否在設置此Cookie 時從 Set-Cookie 消息頭中過濾掉。
這里以刷新'/'自動設置一個 Cookie 為例:
./routes/index.js:
const router = require('koa-router')() router.get('/', async (ctx, next) => { ctx.cookies.set('mycookie', Math.random()) await ctx.render('index', { title: 'Hello Koa 2!' }) }) module.exports = router
刷新 http://localhost:3000/ 自動設置 Cookie:
二、Koa 獲取 Cookie
ctx.cookies.get(name, [options])
通過
options
獲取 cookiename
:
signed
所請求的cookie應該被簽名koa 使用 cookies 模塊,其中只需傳遞參數。
這里以刷新'/json'自動獲取 Cookie 為例:
./routes/index.js:
const router = require('koa-router')() router.get('/json', async (ctx, next) => { ctx.body = { title: 'koa2 json', cookie: ctx.cookies.get('mycookie') } }) module.exports = router
刷新 http://localhost:3000/json 自動獲取 Cookie: