Koa.js Cookies

Cookies 是简单的小文件/数据,通过服务器请求发送到客户端并存储在客户端。 每次用户重新加载网站时,此 cookie 都会随请求一起发送。 这有助于跟踪用户的操作。 HTTP Cookie 有多种用途。

  • 会话管理
  • 个性化(推荐系统)
  • 用户跟踪

要在 Koa 中使用 cookie,我们有以下函数:ctx.cookies.set()ctx.cookies.get() 。 要设置一个新的 cookie,让我们在 Koa 应用程序中定义一个新的路由。

var koa = require('koa');
var router = require('koa-router');
var app = new koa();

var _ = router(); // 实例化路由器

_.get('/', setACookie);

function setACookie(ctx,next) {
     ctx.body = "设置 Cookie!";
   ctx.cookies.set('foo', 'bar', {httpOnly: false});
}

app.use(_.routes()); // 使用由 router 定义的路由
app.listen(3000);

要检查 cookie 是否设置,只需转到浏览器,启动控制台,然后输入

console.log(document.cookie);

这将产生以下输出(由于浏览器中的扩展,我们可能设置了更多 cookie)。

"foo = bar"

koa 设置 cookie

浏览器还会在每次查询服务器时发回 cookie。 要查看服务器上的 cookie,需要在路由中的服务器控制台上,将以下代码添加到该路由。

console.log('Cookies: foo = ', this.cookies.get('foo'));

下次我们向此路由发送请求时,将获得以下输出。

Cookies: foo = bar

我们可以添加具有过期时间的 cookie。 要添加具有过期时间的 cookie,只需传递一个将属性“过期时间”设置为我们希望它过期的时间的对象。 例如,

var koa = require('koa');
var router = require('koa-router');
var app = new koa();

var _ = router(); // 实例化路由器

_.get('/', setACookie);

function setACookie(ctx,next) {
     ctx.body = "设置 Cookie!";
   ctx.cookies.set('foo', 'bar', {httpOnly: false,expires: 360000 + Date.now()});
}

app.use(_.routes()); // 使用由 router 定义的路由
app.listen(3000);

要取消设置 cookie,只需将 cookie 设置为空字符串。 例如,如果需要清除名为 foo 的 cookie,请使用以下代码。

function setACookie(ctx,next) {
      ctx.cookies.set('foo', '')
}

这将取消设置所述 cookie。 请注意,在客户端代码中不使用 cookie 时,我们应该设置 httpOnly 选项为 true

查看笔记

扫码一下
查看教程更方便