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')
})