Heim  >  Artikel  >  Web-Frontend  >  nodejs legt Cookie-Attribute fest

nodejs legt Cookie-Attribute fest

WBOY
WBOYOriginal
2023-05-08 15:32:081309Durchsuche

In der Webentwicklung sind Cookies eine gängige Sitzungsverwaltungsmethode, mit der Client-Authentifizierung, Präferenzen oder andere verwandte Informationen gespeichert werden können. In Node.js können Sie das integrierte http-Modul verwenden, um Cookie-Eigenschaften festzulegen oder zu lesen.

Cookie-Attribute festlegen:

Um Cookie-Attribute festzulegen, müssen Sie zuerst einen http-Server erstellen und die Methode res.setHeader() verwenden, um das Set-Cookie-Feld im Antwortheader festzulegen. Der Wert dieses Felds sollte eine Zeichenfolge sein, bei der es sich um zusätzliche Informationen handelt, die vom Server an den Client gesendet werden, um clientbezogene Informationen oder den Status zu speichern. Diese Zeichenfolge besteht im Allgemeinen aus Schlüssel-Wert-Paaren, wobei der Schlüssel den Namen des Cookies und der Wert den dem Schlüssel entsprechenden Wert darstellt.

Das Folgende ist ein einfaches Node.js-Serverbeispiel, das zeigt, wie Cookie-Attribute festgelegt werden:

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

Im obigen Code verwenden wir die Methode res.setHeader(), um zwei Cookie-Attribute festzulegen, eines ist name=John und das Sonstiges Es ist Alter = 30. Über ein Array können mehrere Cookie-Eigenschaften festgelegt werden.

Cookie-Attribute lesen:

Um Cookie-Attribute zu lesen, müssen wir die entsprechenden Cookie-Informationen aus der Client-Anfrage erhalten. In Node.js können Sie das Attribut req.headers.cookie verwenden, um die Cookie-Informationen im Anforderungsheader abzurufen. Der Wert dieses Attributs sollte eine Zeichenfolge sein, bei der es sich um zusätzliche Informationen handelt, die vom Client an den Server gesendet werden, um clientbezogene Informationen oder den Status zu speichern. Diese Zeichenfolge besteht im Allgemeinen aus Schlüssel-Wert-Paaren, wobei der Schlüssel den Namen des Cookies und der Wert den dem Schlüssel entsprechenden Wert darstellt.

Das Folgende ist ein einfaches Node.js-Serverbeispiel, das zeigt, wie man Cookie-Attribute liest:

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

Im obigen Code haben wir die Cookie-Informationen gedruckt, die der Client mithilfe des Attributs req.headers.cookie an den Server gesendet hat.

Optionen zum Setzen von Cookies:

Neben dem Festlegen des Namens und Werts des Cookies können Sie auch einige Optionen verwenden, um das Verhalten des Cookies zu steuern, wie z. B. Ablaufzeit, Pfad, Domäne, Sicherheitsstufe usw. Diese Optionen bestehen aus Attributen im Set-Cookie-Header, die jeweils durch Semikolons getrennt sind.

Im Folgenden sind einige häufig verwendete Cookie-Optionen und ihre Funktionen aufgeführt:

  • Läuft ab: Gibt die Ablaufzeit des Cookies an, bei dem es sich um eine Datumszeichenfolge im GMT-Format handelt. Beispiel: Läuft ab=Mi, 21. Okt. 2020 07:28:00 GMT. Ist diese Option nicht gesetzt, wird das Cookie nach dem Schließen des Browsers gelöscht.
  • Max-Age: Gibt den maximalen Lebenszyklus des Cookies in Sekunden an. Beispiel: Max-Age=3600 bedeutet, dass das Cookie in 1 Stunde abläuft.
  • Domain: Stellt den Domänennamen des Cookies dar. Beispiel: Domain=.example.com bedeutet, dass das Cookie für alle Domainnamen gültig ist, die mit .example.com enden.
  • Pfad: Stellt den Pfad des Cookies dar. Beispiel: Path=/ bedeutet, dass das Cookie für die gesamte Website gültig ist.
  • Sicher: Zeigt an, dass Cookies nur über den sicheren HTTPS-Kanal übertragen werden. Beispiel: „Sicher“ bedeutet, dass Cookies nur unter dem HTTPS-Protokoll gesendet werden.
  • HttpOnly: Zeigt an, dass das Cookie nur in HTTP-Anfragen verwendet wird und keinen Zugriff über JavaScript zulässt. Beispiel: HttpOnly bedeutet, dass das Cookie nicht über JavaScript auf der Clientseite abgerufen werden kann.

Das Folgende ist ein Node.js-Serverbeispiel, das zeigt, wie Cookie-Attribute mit Optionen festgelegt werden:

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

Im obigen Code legen wir ein Cookie-Attribut namens „Optionen“ mit dem Wert einer JSON-Zeichenfolge fest, die mehrere Optionen enthält. Dieses Cookie hat eine maximale Lebensdauer von 24 Stunden, kann nur in HTTP-Anfragen verwendet werden, kann nur unter dem HTTPS-Protokoll gesendet werden und muss der Same-Origin-Richtlinie (streng) folgen.

Zusammenfassung:

In Node.js ist das Festlegen und Lesen von Cookie-Eigenschaften sehr einfach. Verwenden Sie die setHeader()-Methode des http-Moduls, um die Set-Cookie-Header-Informationen festzulegen, und verwenden Sie das Attribut req.headers.cookie, um die Cookie-Informationen in der Clientanforderung abzurufen. Verwenden Sie Cookie-Optionen, um das Cookie-Verhalten weiter zu steuern, z. B. Lebenszyklus, Domänenname, Pfad, Sicherheitsstufe usw.

Das obige ist der detaillierte Inhalt vonnodejs legt Cookie-Attribute fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn