Koa.js - Cookies
Cookies são arquivos / dados simples e pequenos que são enviados ao cliente com uma solicitação do servidor e armazenados no lado do cliente. Cada vez que o usuário carrega o site de volta, este cookie é enviado com a solicitação. Isso ajuda a controlar as ações dos usuários. Existem vários usos de cookies HTTP.
- Gerenciamento de sessão
- Personalização (sistemas de recomendação)
- Rastreamento de usuário
Para usar cookies com Koa, temos as funções: ctx.cookies.set() e ctx.cookies.get(). Para definir um novo cookie, vamos definir uma nova rota em nosso aplicativo 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);
Para verificar se o cookie está configurado ou não, basta acessar o navegador, iniciar o console e inserir -
console.log(document.cookie);
Isso produzirá a seguinte saída (você pode ter mais cookies definidos, talvez devido a extensões em seu navegador).
"foo = bar"
Aqui está um exemplo do acima.
O navegador também envia cookies de volta toda vez que consulta o servidor. Para visualizar um cookie em seu servidor, no console do servidor em uma rota, adicione o seguinte código a essa rota.
console.log('Cookies: foo = ', this.cookies.get('foo'));
Na próxima vez que você enviar uma solicitação para esta rota, receberá a seguinte saída.
Cookies: foo = bar
Adicionando Cookies com Tempo de Expiração
Você pode adicionar cookies que expiram. Para adicionar um cookie que expira, basta passar um objeto com a propriedade 'expira' definida para a hora em que deseja que ele expire. Por exemplo,
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);
Excluindo Cookies Existentes
Para remover um cookie, simplesmente defina o cookie como uma string vazia. Por exemplo, se você precisar limpar um cookie chamadofoo, use o código a seguir.
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);
Isso irá remover a definição do referido cookie. Observe que você deve deixar oHttpOnly opção para ser verdadeira quando não usar o cookie no código do lado do cliente.