Maison  >  Article  >  interface Web  >  nodejs définit les attributs des cookies

nodejs définit les attributs des cookies

WBOY
WBOYoriginal
2023-05-08 15:32:081350parcourir

Dans le développement Web, les cookies sont une méthode courante de gestion de session qui peut être utilisée pour stocker l'authentification du client, ses préférences ou d'autres informations connexes. Dans Node.js, vous pouvez utiliser le module http intégré pour définir ou lire les propriétés des cookies.

Définir les attributs des cookies :

Pour définir les attributs des cookies, vous devez d'abord créer un serveur http et utiliser la méthode res.setHeader() pour définir le champ Set-Cookie dans l’en-tête de réponse. La valeur de ce champ doit être une chaîne, qui correspond à des informations supplémentaires envoyées par le serveur au client pour enregistrer les informations ou l'état liés au client. Cette chaîne est généralement constituée de paires clé-valeur, où la clé représente le nom du cookie et la valeur représente la valeur correspondant à la clé.

Ce qui suit est un exemple simple de serveur Node.js montrant comment définir les propriétés des cookies :

const http = require('http');

const server = http.createServer((req, res) => {
  res.setHeader('Set-Cookie', ['name=John', 'age=30']);
  res.end('Set cookie successfully');
});

server.listen(3000, () => {
  console.log('Server listening on port 3000');
});

Dans le code ci-dessus, nous utilisons la méthode res.setHeader() pour définir 2 Il existe deux attributs de cookie, l'un est name=John, l'autre est age=30. Plusieurs propriétés de cookie peuvent être définies via un tableau.

Lire les attributs des cookies :

Afin de lire les attributs des cookies, nous devons obtenir les informations correspondantes sur les cookies à partir de la demande du client. Dans Node.js, vous pouvez utiliser l'attribut req.headers.cookie pour obtenir les informations sur les cookies dans l'en-tête de la requête. La valeur de cet attribut doit être une chaîne, qui correspond à des informations supplémentaires envoyées par le client au serveur pour enregistrer les informations ou l'état liés au client. Cette chaîne est généralement constituée de paires clé-valeur, où la clé représente le nom du cookie et la valeur représente la valeur correspondant à la clé.

Ce qui suit est un exemple simple de serveur Node.js qui montre comment lire les attributs des cookies :

const http = require('http');

const server = http.createServer((req, res) => {
  const cookieHeader = req.headers.cookie;
  console.log('Cookie Header:', cookieHeader);
  res.end('Get cookie successfully');
});

server.listen(3000, () => {
  console.log('Server listening on port 3000');
});

Dans le code ci-dessus, nous avons imprimé en utilisant l'attribut req.headers.cookie Informations sur les cookies envoyées par le client au serveur.

Options de paramétrage des cookies :

En plus de définir le nom et la valeur du cookie, vous pouvez également utiliser certaines options pour contrôler le comportement du cookie, comme l'expiration temps, chemin, domaine, niveau de sécurité d'attente. Ces options sont constituées d'attributs dans l'en-tête Set-Cookie, chacun séparé par des points-virgules.

Voici quelques options de cookies couramment utilisées et leurs fonctions :

  • Expire : représente l'heure d'expiration du cookie, qui est une chaîne de date au format GMT . Par exemple : Expire = mercredi 21 octobre 2020 07:28:00 GMT. Si cette option n'est pas définie, le cookie sera supprimé après la fermeture du navigateur.
  • Max-Age : Indique le cycle de vie maximum du cookie, en secondes. Par exemple : Max-Age=3600 signifie que le cookie expirera dans 1 heure.
  • Domain : Représente le nom de domaine du cookie. Par exemple : Domain=.example.com signifie que le cookie est valide pour tous les noms de domaine se terminant par .example.com.
  • Path : Représente le chemin du cookie. Par exemple : Path=/ signifie que le cookie est valable pour l'ensemble du site Web.
  • Secure : Indique que les cookies sont transmis uniquement via le canal sécurisé HTTPS. Par exemple : Sécurisé signifie que les cookies ne seront envoyés que sous le protocole HTTPS.
  • HttpOnly : Indique que le cookie n'est utilisé que dans les requêtes HTTP et n'autorise pas l'accès via JavaScript. Par exemple : HttpOnly signifie que le cookie ne peut pas être obtenu via JavaScript côté client.

Ce qui suit est un exemple de serveur Node.js qui montre comment définir les propriétés des cookies avec des options :

const http = require('http');

const cookieOptions = {
  maxAge: 24 * 60 * 60 * 1000,
  httpOnly: true,
  secure: true,
  sameSite: 'strict'
};

const server = http.createServer((req, res) => {
  res.setHeader('Set-Cookie', ['name=John', 'age=30', `session=${Date.now()}`, `options=${JSON.stringify(cookieOptions)}`]);
  res.end('Set cookie with options successfully');
});

server.listen(3000, () => {
  console.log('Server listening on port 3000');
});

Dans le code ci-dessus, nous définissons un cookie. le nom de l'attribut est options et la valeur est une chaîne JSON contenant plusieurs options. Ce cookie a une durée de vie maximale de 24 heures, ne peut être utilisé que dans les requêtes HTTP, ne peut être envoyé que sous le protocole HTTPS et doit suivre la politique de même origine (stricte).

Résumé :

Dans Node.js, la définition et la lecture des propriétés des cookies sont très simples. Utilisez la méthode setHeader() du module http pour définir les informations d'en-tête Set-Cookie et utilisez l'attribut req.headers.cookie pour obtenir les informations sur les cookies dans la demande du client. Utilisez les options des cookies pour contrôler davantage le comportement des cookies, tel que le cycle de vie, le nom de domaine, le chemin, le niveau de sécurité, etc.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn