Cookie: Às vezes, a forma plural Cookies também é usada. O tipo é "pequeno arquivo de texto", que são dados (geralmente criptografados) armazenados no terminal local do usuário por alguns sites para identificar a identidade do usuário e realizar o rastreamento da sessão. As informações são salvas temporária ou permanentemente pelo computador cliente do usuário.
Para operar cookies com node, precisamos do módulo cookie-parser
npm i cookie-parser -s
Em seguida, introduza este módulo em nosso arquivo
//Introduza o módulo expresso const express = require('express') //Instancia o expresso const aplicativo = expresso() //Operação módulo cookie const cookieParser = require('cookie-parser'); //Adicionar assinatura de cookie app.use(cookieParser('Really ultrageous')); //Usar middleware de cookie, o valor criptografado é: 'Really ultrageous'
Detalhes do parâmetro
nome: um nome que identifica exclusivamente o cookie.
valor: o valor da string armazenada no cookie.
domínio: O cookie é válido para esse domínio.
path: indica o caminho afetado por este cookie. O navegador enviará cookies para o caminho correspondente no domínio especificado com base nesta configuração.
expira: Tempo de expiração, indicando quando o cookie expira. Se esse tempo não for definido, o navegador excluirá todos os cookies quando a página for fechada, mas também podemos definir o tempo de expiração.
Nota: Se o tempo definido no cliente e no servidor for inconsistente, haverá um desvio quando o uso expirar.
max-age: Usado para informar ao navegador quanto tempo esse cookie irá expirar (em segundos). Geralmente, max-age tem uma prioridade mais alta do que expira.
HttpOnly: Informa ao navegador para não permitir que o script document.cookie altere o valor. Este valor também é invisível em document.cookie, mas este cookie será transportado na solicitação http.
Nota: Embora este valor não seja aconselhável em scripts, ele existe na forma de um arquivo no diretório de instalação do navegador. Essa configuração geralmente é definida no lado do servidor.
seguro: sinalizador de segurança. Quando especificado, quando seguro é verdadeiro, é inválido em HTTP e válido apenas em HTTPS. Isso significa que o cookie criado só pode ser passado pelo navegador para o servidor para verificação de sessão na conexão HTTPS. As conexões HTTP não passam essas informações, portanto geralmente não são ouvidas.
Em relação a questões de leitura,
req.cookies: lê nossos cookies não criptografados;
req.signedCookies: lê nossos cookies criptografados;
Caso
app.get('/', (req, res) => { res.cookie('carrinho', { itens: [1, 2, 3] }, { maxAge: 10000 * 2, httpOnly: verdadeiro, assinado: verdadeiro, caminho: '/' }); res.cookie('usuário', 'Zhang San', { httpOnly: true, caminho: '/usuário', assinado: true }) res.send('ok') console.log(req.cookies) console.log(req.signedCookies) })
app.get('/usuário', (req, res) => { console.log(req.cookies) res.send(req.signedCookies) })
app.get('/notícias', function (req, res) { res.cookie('Idade', 'Dabai', { maxAge: 10000 * 2, httpOnly: verdadeiro, assinado: verdadeiro }) res.cookie('Idade', '0', { maxAge: 0 }); //Excluir cookie res.send('Olá, notícias do nodejs') })
Nossos cookie
serão excluídos quando maxAge
for 0
.