Estou tentando descobrir o que realmente são "cookies assinados". Não há muito na rede, e se eu tentar isso:
app.use(express.cookieParser('A secret'));
Mas ainda ... Os cookies ainda são 100% normais no navegador, e eu realmente não sei o que "assinado" é aqui (eu estava meio que esperando "ver" alguma estranheza no cliente, algo como os dados criptografados usando "Um segredo" como sal?)
A documentação diz ( https://github.com/expressjs/cookie-parser ):
Analisar o cabeçalho do cookie e preencher
req.cookies
com um objeto codificado pelos nomes dos cookies. Opcionalmente, você pode habilitar o suporte a cookies assinados passando umasecret
string, que é atribuídareq.secret
para que possa ser usada por outro middleware.
Alguém sabe?
Merc.
express.cookieParser()
?res.cookie('somethingElseAgainAndAgain', 'signed? Maybe' );
aí ... Estou colocando os cookies com mas ... Duvido que seja assinando! O middleware cookieParser () está pronto para analisar cookies assinados, mas definitivamente não estou fazendo a configuração certa ... tenho que assiná-los manualmente ...?(res.cookie(name, value, { signed: true }))
. Relatando o "detalhe" ausente da documentação ...If it does not match, then it will give an error.
Não é um erro . Apenas o request.signedCookie para essa chave não foi definido . Então, mais como ignoradoSim, como emostar menciona, é simplesmente para garantir que um valor não foi adulterado. Ele é colocado em um objeto diferente (req.signedCookies) para diferenciar os dois, permitindo que o desenvolvedor mostre a intenção. Se eles fossem armazenados em req.cookies junto com os outros, alguém poderia simplesmente criar um cookie não assinado com o mesmo nome, anulando todo o propósito deles.
fonte
Tenho pesquisado bastante por uma boa resposta para isso ... E olhando para o código-fonte do
cookie-signature
, que é usado porcookie-parser
para assinar os cookies assinados, me deu uma compreensão melhor do que é um cookie assinado.val
é, obviamente, o valor do cookie, esecret
é a string que você adiciona como opção paracookie-parser
https://github.com/visionmedia/node-cookie-signature/blob/master/index.js#L16
fonte
Eu usei a versão 1.4.4 do analisador de cookies.
Eu poderia adicionar cookies assinados e cookies assinados criptografados no navegador, se eu tentar editar o cookie assinado usando editThisCookie (plug-in do Chrome), o analisador de cookies detecta a mudança externa e, em seguida, define false como valor.
Cabeçalho de resposta no navegador, aparece como
Obter cookie assinado
https://gist.github.com/dineshbalaji/607d166f0240f932a5cb02099b0ece4c
fonte