nodejsはCookie属性を設定します

WBOY
WBOYオリジナル
2023-05-08 15:32:081368ブラウズ

Web 開発では、Cookie はクライアント認証、設定、またはその他の関連情報を保存するために使用できる一般的なセッション管理方法です。 Node.js では、組み込みの http モジュールを使用して、Cookie プロパティを設定または読み取りできます。

Cookie 属性の設定:

Cookie 属性を設定するには、まず http サーバーを作成し、res.setHeader() メソッドを使用して応答ヘッダーの Set-Cookie フィールドを設定する必要があります。このフィールドの値は文字列である必要があります。これは、クライアント関連の情報またはステータスを保存するためにサーバーからクライアントに送信される追加情報です。この文字列は通常、キーと値のペアで構成されます。キーは Cookie の名前を表し、値はキーに対応する値を表します。

以下は、Cookie 属性を設定する方法を示す簡単な Node.js サーバーの例です:

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');
});

上記のコードでは、res.setHeader() メソッドを使用して 2 つの Cookie 属性を設定します。 , 1 人は名前 = ジョン、もう 1 人は年齢 = 30 です。配列を介して複数の Cookie プロパティを設定できます。

Cookie 属性の読み取り:

Cookie 属性を読み取るには、クライアント要求から対応する Cookie 情報を取得する必要があります。 Node.js では、req.headers.cookie 属性を使用して、リクエスト ヘッダーの Cookie 情報を取得できます。この属性の値は文字列である必要があります。これは、クライアント関連の情報またはステータスを保存するためにクライアントからサーバーに送信される追加情報です。この文字列は通常、キーと値のペアで構成されます。キーは Cookie の名前を表し、値はキーに対応する値を表します。

以下は、Cookie 属性を読み取る方法を示す簡単な Node.js サーバーの例です:

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');
});

上記のコードでは、req.headers.cookie 属性を使用して、クライアントに送信されたメッセージを出力します。サーバーのクッキー情報に。

Cookie を設定するためのオプション:

Cookie の名前と値を設定することに加えて、いくつかのオプションを使用して、有効期限、パス、などの Cookie の動作を制御することもできます。ドメイン、セキュリティレベルなど。これらのオプションは、Set-Cookie ヘッダー内の属性で構成され、それぞれがセミコロンで区切られています。

次に、一般的に使用される Cookie オプションとその機能を示します。

  • Expires: Cookie の有効期限を示します。GMT 形式の日付文字列です。例: 有効期限=2020 年 10 月 21 日水曜日 07:28:00 GMT。このオプションが設定されていない場合、Cookie はブラウザを閉じた後に削除されます。
  • Max-Age: Cookie の最大ライフ サイクルを秒単位で示します。例: Max-Age=3600 は、Cookie が 1 時間で期限切れになることを意味します。
  • Domain: Cookie のドメイン名を表します。例: Domain=.example.com は、Cookie が .example.com で終わるすべてのドメイン名に対して有効であることを意味します。
  • Path: Cookie のパスを表します。例: Path=/ は、Cookie が Web サイト全体に対して有効であることを意味します。
  • セキュア: Cookie が HTTPS セキュア チャネル経由でのみ送信されることを示します。例: 安全とは、Cookie が HTTPS プロトコルでのみ送信されることを意味します。
  • HttpOnly: Cookie が HTTP リクエストでのみ使用され、JavaScript を介したアクセスは許可されないことを示します。例: HttpOnly は、クライアント側の JavaScript を介して Cookie を取得できないことを意味します。

以下は、オプションを使用して Cookie 属性を設定する方法を示す Node.js サーバーの例です:

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');
});

上記のコードでは、options という名前の Cookie 属性を設定します。は、複数のオプションを含む JSON 文字列です。この Cookie の最大有効期間は 24 時間で、HTTP リクエストでのみ使用でき、HTTPS プロトコルでのみ送信でき、同一生成元ポリシー (厳格) に従う必要があります。

概要:

Node.js では、Cookie プロパティの設定と読み取りは非常に簡単です。 http モジュールの setHeader() メソッドを使用して Set-Cookie ヘッダー情報を設定し、req.headers.cookie 属性を使用してクライアント要求の Cookie 情報を取得します。 Cookie オプションを使用して、ライフサイクル、ドメイン名、パス、セキュリティ レベルなどの Cookie の動作をさらに制御します。

以上がnodejsはCookie属性を設定しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。