Koa.js - файлы cookie

Файлы cookie - это простые небольшие файлы / данные, которые отправляются клиенту с запросом сервера и хранятся на стороне клиента. Каждый раз, когда пользователь загружает веб-сайт обратно, этот файл cookie отправляется с запросом. Это помогает отслеживать действия пользователей. Файлы cookie HTTP используются во многих случаях.

  • Управление сессией
  • Персонализация (системы рекомендаций)
  • Отслеживание пользователей

Чтобы использовать файлы cookie с Koa, у нас есть функции: ctx.cookies.set() и ctx.cookies.get(). Чтобы установить новый файл cookie, давайте определим новый маршрут в нашем приложении Koa.

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

_.get('/', setACookie);

function *setACookie() {
   this.cookies.set('foo', 'bar', {httpOnly: false});
}

var _ = router();

app.use(_.routes());
app.listen(3000);

Чтобы проверить, установлен ли cookie или нет, просто зайдите в свой браузер, запустите консоль и введите -

console.log(document.cookie);

Это даст следующий результат (у вас может быть установлено больше файлов cookie, возможно, из-за расширений в вашем браузере).

"foo = bar"

Вот пример вышесказанного.

Браузер также отправляет файлы cookie каждый раз, когда запрашивает сервер. Чтобы просмотреть файл cookie на своем сервере, на консоли сервера в маршруте добавьте следующий код к этому маршруту.

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

В следующий раз, когда вы отправите запрос на этот маршрут, вы получите следующий результат.

Cookies: foo = bar

Добавление файлов cookie со сроком действия

Вы можете добавить файлы cookie, срок действия которых истекает. Чтобы добавить cookie, срок действия которого истекает, просто передайте объект со свойством expires, установленным на время, когда вы хотите, чтобы он истек. Например,

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

_.get('/', setACookie);

function *setACookie(){
   //Expires after 360000 ms from the time it is set.
	this.cookies.set('name', 'value', { 
      httpOnly: false, expires: 360000 + Date.now() });
}

var _ = router();

app.use(_.routes());
app.listen(3000);

Удаление существующих файлов cookie

Чтобы отключить cookie, просто установите для cookie пустую строку. Например, если вам нужно очистить файл cookie с именемfooиспользуйте следующий код.

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

_.get('/', setACookie);

function *setACookie(){
   //Expires after 360000 ms from the time it is set.
   this.cookies.set('name', '');
}

var _ = router();

app.use(_.routes());
app.listen(3000);

Это отключит указанный файл cookie. Обратите внимание, что вы должны оставитьHttpOnly значение true, если cookie не используется в коде на стороне клиента.