KoaJS cookies
-
定义和使用
cookies 是简单的小文件/数据,随服务器请求发送到客户端并存储在客户端。每次用户重新加载网站时,此 cookies 将与请求一起发送。这有助于跟踪用户的操作。HTTP cookies 有很多用途- Session management - 会话管理
- Personalization - 个性化(推荐系统)
- User tracking - 用户跟踪
-
示例
要将 cookies 与 Koa 一起使用,我们有以下功能:ctx.cookies.set() 和 ctx.cookies.get(). 要设置一个新的 cookies,让我们在 Koa 应用程序中定义一个新的路由。var koa = require('koa'); var router = require('koa-router'); var app = new koa(); var _router = router(); //实例化路由器 _router.get('/', async (ctx)=>{ ctx.cookies.set('foo', 'bar', {httpOnly: false}); }); app.use(_router.routes()); //使用路由器定义的路由 app.listen(3001);
要检查是否设置了 cookies,只需进入浏览器,启动控制台,然后输入-console.log(document.cookie);
这将产生以下输出(可能是由于浏览器中的扩展,您可能设置了更多cookies)。"foo = bar"
下面是上面的一个例子。浏览器每次查询服务器时也会发回 cookies。要查看服务器上的 cookies,请在路由的服务器控制台上,向该路由添加以下代码。console.log('Cookies: foo = ', this.cookies.get('foo'));
下次向该路由发送请求时,将得到以下输出。Cookies: foo = bar
-
添加具有过期时间的Cookies
您可以添加过期的 Cookies。若要添加过期的 cookies,只需传递一个对象,并将属性 "expires" 设置为您希望它过期的时间。例如,var koa = require('koa'); var router = require('koa-router'); var app = new koa(); var _router = router(); _router.get('/', async (ctx)=>{ //在设置后360000毫秒后过期。 ctx.cookies.set('name', 'value', { httpOnly: false, expires: 360000 + Date.now() }); }); app.use(_router.routes()); app.listen(3001);
-
删除现有Cookies
要取消设置 cookies,只需将 cookies 设置为空字符串。例如,如果需要清除名为 foo 的 cookies,请使用以下代码。var koa = require('koa'); var router = require('koa-router'); var app = new koa(); var _router = router(); _router.get('/', async (ctx)=>{ ctx.cookies.set('name', ''); }); app.use(_router.routes()); app.listen(3001);
这将使所述 cookies 不稳定。请注意,在客户端中不应该只在代码中使用 http 选项。