Middleware cookie-parser

Analiza la cabecera Cookie y completa req.cookies con un objeto indexado por los nombres de las cookies. Opcionalmente puedes habilitar el soporte de cookies firmadas pasando una cadena secret, la cual asigna req.secret para que pueda ser usado por otro middleware.

Instalación

Ventana de terminal
npm install cookie-parser

API

var cookieParser = require('cookie-parser');

cookieParser(secret, options)

Crea una nueva función de middleware de análisis de cookies usando el secret y options dados.

  • secret una cadena o array usado para firmar cookies. Esto es opcional y si no se especifica, no se analizarán las cookies firmadas. Si se proporciona una cadena, esta se usa como el secret. Si se proporciona un array, se intentará desfirmar la cookie con cada secret en orden.
  • options an object that is passed to cookie.parse as the second option. See cookie for more information.
    • decode una función para decodificar el valor de la cookie

El middleware analizará la cabecera Cookie de la petición y expondrá los datos de la cookie como la propiedad req.cookies y, si se proporcionó un secret, como la propiedad req.signedCookies. Estas propiedades son pares nombre-valor del nombre de la cookie al valor de la cookie.

Cuando se proporciona un secret, este módulo desfirmará y validará cualquier valor de cookie firmada y moverá esos pares nombre-valor de req.cookies a req.signedCookies. Una cookie firmada es una cookie que tiene un valor prefijado con s:. Las cookies firmadas que fallan la validación de la firma tendrán el valor false en lugar del valor alterado.

Además, este módulo soporta “JSON cookies” especiales. Estas son cookies donde el valor está prefijado con j:. Cuando se encuentran estos valores, el valor será expuesto como el resultado de JSON.parse. Si el análisis falla, el valor original permanecerá.

cookieParser.JSONCookie(str)

Analiza un valor de cookie como una cookie JSON. Esto devolverá el valor JSON analizado si era una cookie JSON, de lo contrario, devolverá el valor pasado.

cookieParser.JSONCookies(cookies)

Dado un objeto, esto iterará sobre las claves y llamará a JSONCookie en cada valor, reemplazando el valor original con el valor analizado. Esto devuelve el mismo objeto que se pasó.

cookieParser.signedCookie(str, secret)

Analiza un valor de cookie como una cookie firmada. Esto devolverá el valor analizado no firmado si era una cookie firmada y la firma era válida. Si el valor no estaba firmado, se devuelve el valor original. Si el valor estaba firmado pero la firma no pudo ser validada, se devuelve false.

El argumento secret puede ser un array o una cadena. Si se proporciona una cadena, esta se usa como el secret. Si se proporciona un array, se intentará desfirmar la cookie con cada secret en orden.

cookieParser.signedCookies(cookies, secret)

Dado un objeto, esto iterará sobre las claves y comprobará si algún valor es una cookie firmada. Si es una cookie firmada y la firma es válida, la clave será eliminada del objeto y añadida al nuevo objeto que se devuelve.

El argumento secret puede ser un array o una cadena. Si se proporciona una cadena, esta se usa como el secret. Si se proporciona un array, se intentará desfirmar la cookie con cada secret en orden.

Ejemplo

var express = require('express');
var cookieParser = require('cookie-parser');
var app = express();
app.use(cookieParser());
app.get('/', function (req, res) {
// Cookies that have not been signed
console.log('Cookies: ', req.cookies);
// Cookies that have been signed
console.log('Signed Cookies: ', req.signedCookies);
});
app.listen(8080);
// curl command that sends an HTTP request with two cookies
// curl http://127.0.0.1:8080 --cookie "Cho=Kim;Greet=Hello"

Licencia

MIT