Cookie : Parfois, le pluriel Cookies est également utilisé. Il s'agit de « petits fichiers texte », qui sont des données (généralement cryptées) stockées sur le terminal local de l'utilisateur par certains sites Web afin d'identifier l'identité de l'utilisateur et d'effectuer un suivi de session. Les informations sont enregistrées temporairement ou définitivement par l'ordinateur client de l'utilisateur.
Pour faire fonctionner les cookies avec node, nous avons besoin du module cookie-parser
npm i cookie-parser -s
Ensuite, introduisez ce module dans notre fichier
//Introduisez le module express const express = require('express') // Instancier express const application = express() //Module de cookie d'opération const cookieParser = require('cookie-parser'); //Ajouter une signature de cookie app.use(cookieParser('Really scandaleux')); //Utiliser un middleware de cookie, la valeur cryptée est : 'Vraiment scandaleux'Nom
des détails du paramètre
: Un nom qui identifie de manière unique le cookie.
value : La valeur de la chaîne stockée dans le cookie.
domaine : le cookie est valide pour ce domaine.
path : indique le chemin affecté par ce cookie. Le navigateur enverra des cookies au chemin correspondant dans le domaine spécifié en fonction de cette configuration.
expires : délai d'expiration, indiquant quand le cookie expire. Si ce délai n'est pas défini, le navigateur supprimera tous les cookies à la fermeture de la page, mais nous pouvons également définir nous-mêmes le délai d'expiration.
Remarque : Si les heures définies sur le client et le serveur sont incohérentes, il y aura un écart à l'expiration de l'utilisation.
max-age : utilisé pour indiquer au navigateur combien de temps ce cookie expirera (en secondes). Généralement, max-age a une priorité plus élevée que expire.
HttpOnly : indique au navigateur de ne pas autoriser le script document.cookie à modifier la valeur. Cette valeur est également invisible dans document.cookie, mais ce cookie sera transporté dans la requête http.
Remarque : Bien que cette valeur soit déconseillée dans les scripts, elle existe sous la forme d'un fichier dans le répertoire d'installation du navigateur. Ce paramètre est généralement défini côté serveur.
secure : indicateur de sécurité Lorsqu'il est spécifié, lorsque secure est vrai, il n'est pas valide en HTTP et uniquement valide en HTTPS. Cela signifie que le cookie créé ne peut être transmis par le navigateur au serveur que pour vérification de session dans la connexion HTTPS. Cependant, les connexions HTTP ne transmettent pas ces informations, elles ne sont donc généralement pas entendues.
Concernant les problèmes de lecture,
req.cookies : lit nos cookies non cryptés ;
req.signedCookies : lit nos cookies cryptés.
Cas
app.get('/', (req, res) => { res.cookie('cart', { items : [1, 2, 3] }, { maxAge : 10000 * 2, httpOnly : true, signé : true, chemin : '/' }); res.cookie('user', 'Zhang San', { httpOnly : true, chemin : '/user', signé : true }) res.envoyer('ok') console.log(req.cookies) console.log(req.signedCookies) })
app.get('/user', (req, res) => { console.log(req.cookies) res.send(req.signedCookies) })
app.get('/news', fonction (req, res) { res.cookie('Age', 'Dabai', { maxAge : 10000 * 2, httpOnly : true, signé : true }) res.cookie('Age', '0', { maxAge: 0 }); //Supprimer le cookie res.send('Bonjour les nouvelles de nodejs') })
Nos cookie
seront supprimés lorsque maxAge
sera égal à 0
.