req.cookies: se supone que Request.Cookies son cookies que provienen del cliente (navegador) y Response.Cookies son cookies que se enviarán de vuelta al cliente (navegador). Las cookies son pequeños archivos/datos que se envían al cliente con una solicitud del servidor y se almacenan en el lado del cliente. Esto nos ayuda a realizar un seguimiento de las acciones del usuario.
Cookie-parser es un middleware que analiza las cookies adjuntas al objeto de solicitud del cliente. Cuando usamos middleware de analizador de cookies, esta propiedad es un objeto que contiene cookies enviadas por la solicitud. Si la solicitud no contiene cookies, el valor predeterminado es { }.
Ejemplo:
Javascript
var cookieParser = require('cookie-parser'); var express = require('express'); var app = express(); var PORT = 3000; app.use(cookieParser()); app.get('/user', function (req, res) { req.cookies.name='Gourav'; req.cookies.age=12; console.log(req.cookies); res.send(); }); app.listen(PORT, function(err){ if (err) console.log(err); console.log("Server listening on PORT", PORT); });
Salida: ahora abra su navegador y realice una solicitud GET a http://localhost:3000/user , ahora puede ver la siguiente salida en su consola:
Server listening on PORT 3000 [Object: null prototype] { name: 'Gourav', age: 12 }
req.signedCookies: la propiedad req.signedCookies contiene cookies firmadas enviadas por la solicitud, sin firmar y listas para usar cuando se usa un middleware de analizador de cookies. Firmar una cookie no la oculta ni la encripta, sino que simplemente evita que se manipulen. Funciona al crear un HMAC del valor (cookie actual) y codificarlo en base64. Cuando se lee la cookie, vuelve a calcular la firma y se asegura de que coincida con la firma adjunta. Si no coincide, da un error. Si no se envían cookies firmadas, la propiedad se establece de forma predeterminada en { }.
Ejemplo:
Javascript
var cookieParser = require('cookie-parser'); var express = require('express'); var app = express(); var PORT = 3000; app.use(cookieParser()); app.get('/user', function (req, res) { // Setting multiple cookies req.signedCookies.title='Gourav'; req.signedCookies.age=12; console.log(req.signedCookies); res.send(); }); app.listen(PORT, function(err){ if (err) console.log(err); console.log("Server listening on PORT", PORT); });
Salida: ahora abra su navegador y realice una solicitud GET a http://localhost:3000/user , ahora puede ver la siguiente salida en su consola:
Server listening on PORT 3000 [Object: null prototype] { title: 'Gourav', age: 12 }
Diferencia entre req.cookies y req.signedCookies –
cookies requeridas | req.signedCookies |
No podemos identificar si los datos que se devuelven a la cookie son modificados por el cliente o no. | Usamos una cookie firmada si queremos asegurarnos de que los datos que se devuelven a la cookie no han sido modificados por el cliente. |
Si la solicitud no contiene cookies, el valor predeterminado es { }. | Si no se envían cookies firmadas, esta propiedad se establece de forma predeterminada en { }. |
El servidor no puede detectar si el cliente cambia las cookies. | El servidor puede detectar si el cliente cambia las cookies. |
No hay caso de agregar una firma a la cookie. | La firma se agrega como parte de la cookie junto con los datos reales de la cookie. La firma se deriva de los datos de la cookie y de un secreto que solo conoce el servidor. |
Publicación traducida automáticamente
Artículo escrito por furkanahmed y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA