Node.js を使用して Web アプリケーションを開発する場合、Cookie はユーザー情報を保持する最も一般的な方法です。ただし、場合によっては、アプリケーションでユーザーの Cookie をクリアする必要があります。この記事では、Node.js でネイティブに Cookie をクリアする方法を紹介します。
Cookie をクリアするには、まず Cookie がどのように設定されているかを理解する必要があります。一般的に、Cookie に属性のリストを設定し、それを応答ヘッダーとしてクライアントに返します。たとえば、次は 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);
このコードは、res.setHeader
メソッドを使用して Cookie を設定し、userId
属性を設定します。 12345
まで。この場合、クライアントがこの URL をリクエストするたびに、Cookie
という名前の属性が値 userId=12345
とともにリクエスト ヘッダーに含まれます。
Cookie をクリアするには、図に示すように、応答ヘッダーに Set-Cookie
という名前の属性を設定し、その値を userId
と null 文字列に設定する必要があります。以下:
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 の設定とクリアは簡単ですが、実際のアプリケーションでは通常、Cookie 関連の操作を処理するためにいくつかの Node.js フレームワークとサードパーティ パッケージを使用することに注意してください。たとえば、Express フレームワークには、Cookie の解析と設定に使用できる cookie-parser
というミドルウェアがあります。この方法は操作が簡単で、コードはより簡潔で明確になります。
要約すると、Max-Age
属性と expires
属性を設定することでユーザーの Cookie をクリアできます。ネイティブ Node.js を使用して Cookie をクリアするのは簡単ですが、実際には、Cookie 関連の操作を処理するには Node.js フレームワークとサードパーティ パッケージを使用する方が良いことがよくあります。
以上がネイティブ Node.js で Cookie をクリアする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。