Comment effacer les cookies dans Node.js natif

PHPz
Libérer: 2023-04-05 10:45:51
original
672 Les gens l'ont consulté

Lors du développement d'applications Web à l'aide de Node.js, les cookies sont le moyen le plus courant de conserver les informations utilisateur. Cependant, nous devons parfois effacer les cookies des utilisateurs dans l'application. Dans cet article, nous présenterons comment effacer les cookies de manière native dans Node.js.

Pour effacer les cookies, vous devez d'abord comprendre comment les cookies sont définis. De manière générale, nous définissons le cookie sur une liste d'attributs, puis le renvoyons au client comme en-tête de réponse. Par exemple, voici un extrait de code qui définit un cookie :

const http = require('http');

http.createServer((req, res) => {
  // 设置cookie
  res.setHeader('Set-Cookie', ['userId=12345']);
  // 发送响应
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(3000);
Copier après la connexion

Ce code utilise la méthode res.setHeader pour définir le cookie et définit l'attribut userId sur 12345code>. Dans ce cas, chaque fois que le client demandera cette URL, un attribut nommé Cookie sera inclus dans l'en-tête de la requête avec la valeur userId=12345. res.setHeader方法设置cookie,将userId属性设置为12345。在这种情况下,每次客户端请求这个URL时,都会在请求头中包含名为Cookie的属性,值为userId=12345

要清除cookie,我们需要在响应头中设置一个名为Set-Cookie的属性,并将其值设置为userId加上一个空字符串,如下所示:

const http = require('http');

http.createServer((req, res) => {
  // 清除cookie
  res.setHeader('Set-Cookie', ['userId=; Max-Age=0']);
  // 发送响应
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(3000);
Copier après la connexion

这段代码中,我们将Max-Age属性设置为0,告诉浏览器立即删除cookie。当请求到达服务器时,服务器将收到一个空的cookie,因此可以清除用户保存的信息。

我们还可以使用expires属性将cookie的有效期设置为过去的时间,以便立即清除cookie。例如:

const http = require('http');

http.createServer((req, res) => {
  // 清除cookie
  res.setHeader('Set-Cookie', ['userId=; expires=Thu, 01 Jan 1970 00:00:00 GMT']);
  // 发送响应
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(3000);
Copier après la connexion

这段代码将过期时间设置为1970年1月1日,这意味着cookie已经过期。当请求到达服务器时,服务器将收到一个过期的cookie,因此可以将其删除。

需要注意的是,在原生Node.js中设置和清除cookie很容易,但在实际应用中,我们通常使用一些Node.js框架和第三方包来处理cookie相关的操作。例如,Express框架中有一个称为cookie-parser的中间件,可用于解析和设置cookie。这种方式会更加易于操作,且代码更加简洁明了。

综上所述,通过设置Max-Ageexpires

Pour effacer les cookies, nous devons définir un attribut appelé Set-Cookie dans l'en-tête de réponse et définir sa valeur sur userId plus une chaîne vide, comme indiqué ci-dessous : 🎜 rrreee🎜Dans ce code, nous définissons l'attribut Max-Age sur 0 pour indiquer au navigateur de supprimer le cookie immédiatement. Lorsque la demande atteint le serveur, le serveur recevra un cookie vide et pourra donc effacer les informations enregistrées par l'utilisateur. 🎜🎜Nous pouvons également utiliser l'attribut expires pour définir la date d'expiration du cookie à une heure antérieure afin que le cookie puisse être effacé immédiatement. Par exemple : 🎜rrreee🎜Ce code fixe la date d'expiration au 1er janvier 1970, ce qui signifie que le cookie a expiré. Lorsque la demande atteint le serveur, le serveur recevra un cookie expiré afin qu'il puisse être supprimé. 🎜🎜Il convient de noter qu'il est facile de définir et d'effacer les cookies dans Node.js natif, mais dans les applications réelles, nous utilisons généralement certains frameworks Node.js et packages tiers pour gérer les opérations liées aux cookies. Par exemple, le framework Express dispose d'un middleware appelé cookie-parser qui peut être utilisé pour analyser et définir des cookies. Cette méthode sera plus facile à utiliser et le code sera plus concis et clair. 🎜🎜En résumé, les cookies de l'utilisateur peuvent être effacés en définissant les attributs Max-Age et expires. Il est facile d'effacer les cookies à l'aide de Node.js natif, mais en pratique, il est souvent préférable d'utiliser les frameworks Node.js et les packages tiers pour gérer les opérations liées aux cookies. 🎜

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!