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);
Ce code utilise la méthode res.setHeader
pour définir le cookie et définit l'attribut userId
sur 12345
code>. 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);
这段代码中,我们将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);
这段代码将过期时间设置为1970年1月1日,这意味着cookie已经过期。当请求到达服务器时,服务器将收到一个过期的cookie,因此可以将其删除。
需要注意的是,在原生Node.js中设置和清除cookie很容易,但在实际应用中,我们通常使用一些Node.js框架和第三方包来处理cookie相关的操作。例如,Express框架中有一个称为cookie-parser
的中间件,可用于解析和设置cookie。这种方式会更加易于操作,且代码更加简洁明了。
综上所述,通过设置Max-Age
和expires
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!