Heim  >  Artikel  >  Web-Frontend  >  Lassen Sie uns darüber sprechen, wie Node+Express Cookies betreibt

Lassen Sie uns darüber sprechen, wie Node+Express Cookies betreibt

青灯夜游
青灯夜游Original
2022-06-22 10:01:082247Durchsuche

Wie betreibt Node+Express Cookies? Der folgende Artikel stellt Ihnen vor, wie Sie nodejs zum Betreiben von Cookies verwenden. Ich hoffe, er wird Ihnen hilfreich sein!

Lassen Sie uns darüber sprechen, wie Node+Express Cookies betreibt

Cookie: Manchmal wird auch die Pluralform Cookies verwendet. Der Typ ist eine „kleine Textdatei“, bei der es sich um Daten (normalerweise verschlüsselt) handelt, die von einigen Websites auf dem lokalen Terminal des Benutzers gespeichert werden, um die Identität des Benutzers zu identifizieren und eine Sitzungsverfolgung durchzuführen. Die Informationen werden vorübergehend oder dauerhaft vom Client-Computer des Benutzers gespeichert.


Um node zum Betreiben von Cookies zu verwenden, benötigen wir das Modul cookie-parser cookie-parser模块

npm i cookie-parser -s

接下来在我们的文件中引入此模块

// 引入express模块
const express = require('express')
// 实例化express
const app = express()
// 操作cookie模块
const cookieParser = require('cookie-parser');
// 加入cookie签名
app.use(cookieParser('真的好离谱')); //使用cookie中间件,加密值为:‘真的好离谱’

参数详解

name: 一个唯一确定cookie的名称。
value: 存储在cookie中字符串的值。
domain: cookie对于那个域下是有效的,
path: 表示这个cookie影响到的路径,浏览器会根据这个配置,向指定的域中匹配的路径发送cookie。
expires: 失效时间,表示cookie何时失效的时间,如果不设置这个时间,浏览器就会在页面关闭时将删除所有的cookie,不过我们也可以自己设置过期时间。
注意:如果客户端和服务器端设置的时间不一致,使用expires就会存在偏差。
max-age: 用来告诉浏览器此cookie多久过期(单位是秒),一般的情况下,max-age的优先级高于expires。
HttpOnly: 告诉浏览器不允许通过脚本document.cookie去更改值,这个值在document.cookie中也是不可见的,但是在http请求会携带这个cookie,
注意:这个值虽然在脚本中使不可取的,但是在浏览器安装目录中是以文件形式存在的,这个设置一般在服务器端设置的。
secure:安全标志,指定后,当secure为true时候,在HTTP中是无效的,在HTTPS中才有效,表示创建的cookie只能在HTTPS连接中被浏览器传递到服务器端进行会话验证,如果是HTTP连接则不会传递该信息,所以一般不会被且听到。

关于读取问题

  • req.cookies:读取到的是我们未加密的cookie;

  • req.signedCookies:读取我们的加密cookie。

案例

app.get('/', (req, res) => {
    res.cookie('cart', { items: [1, 2, 3] }, { maxAge: 10000 * 2, httpOnly: true, signed: true, path: '/' });
    res.cookie('user', '张三', { httpOnly: true, path: '/user', signed: true })
    res.send('ok')
    console.log(req.cookies)
    console.log(req.signedCookies)
})

Lassen Sie uns darüber sprechen, wie Node+Express Cookies betreibt

Lassen Sie uns darüber sprechen, wie Node+Express Cookies betreibt

app.get('/user', (req, res) => {

    console.log(req.cookies)
    res.send(req.signedCookies)
})

Lassen Sie uns darüber sprechen, wie Node+Express Cookies betreibt

app.get('/news', function (req, res) {
    res.cookie('Age', '大白', { maxAge: 10000 * 2, httpOnly: true, signed: true })
    res.cookie('Age', '0', { maxAge: 0 }); //删除cookie
    res.send('你好nodejs news')
})

Lassen Sie uns darüber sprechen, wie Node+Express Cookies betreibt

maxAge0时会删除我们的cookierrreee

Als nächstes stellen wir dieses Modul in unserer Datei vorrrreee

🎜Detaillierte Erläuterung der Parameter🎜 🎜
🎜Name: Ein Name, der das Cookie eindeutig identifiziert.
Wert: Der Wert der im Cookie gespeicherten Zeichenfolge.
Domäne: Das Cookie ist für diese Domäne gültig.
Pfad: Gibt den von diesem Cookie betroffenen Pfad an. Der Browser sendet Cookies basierend auf dieser Konfiguration an den entsprechenden Pfad in der angegebenen Domäne.
läuft ab: Ablaufzeit, die angibt, wann das Cookie abläuft. Wenn diese Zeit nicht festgelegt ist, löscht der Browser alle Cookies, wenn die Seite geschlossen wird. Wir können die Ablaufzeit jedoch auch selbst festlegen.
Hinweis: Wenn die vom Client und vom Server festgelegte Zeit inkonsistent ist, kommt es bei der Verwendung von Ablaufdatum zu einer Abweichung.
max-age: Wird verwendet, um dem Browser mitzuteilen, wie lange dieses Cookie abläuft (in Sekunden). Im Allgemeinen hat „max-age“ eine höhere Priorität als „expires“.
HttpOnly: Weisen Sie den Browser an, dem Skript document.cookie nicht zu erlauben, den Wert zu ändern. Dieser Wert ist auch in document.cookie nicht sichtbar, aber die HTTP-Anfrage enthält diesen Cookie Es ist nicht ratsam, es in einem Skript zu verwenden, es liegt jedoch in Form einer Datei im Installationsverzeichnis des Browsers vor. Diese Einstellung wird normalerweise serverseitig festgelegt.
secure: Sicherheitsflag. Wenn secure den Wert „true“ hat, ist es in HTTP ungültig und nur in HTTPS gültig. Dies bedeutet, dass das erstellte Cookie nur für eine Sitzung in einer HTTPS-Verbindung an den Server übergeben werden kann. Überprüfung: Wenn es sich um eine HTTP-Verbindung handelt, werden diese Informationen nicht weitergegeben und sind daher im Allgemeinen nicht zu hören. 🎜
🎜🎜Über Leseprobleme🎜🎜
  • 🎜req.cookies: Was gelesen wird, ist unser unverschlüsseltes Cookie;🎜 li>
  • 🎜req.signedCookies: Lesen Sie unsere verschlüsselten Cookies. 🎜
🎜🎜Fall🎜🎜rrreee🎜 Bildbeschreibung hier einfügen“/>🎜🎜<img src= 🎜rrreee🎜Bildbeschreibung hier einfügen🎜rrreee🎜 Bildbeschreibung hier einfügen🎜🎜🎜whenmaxAge When ist 0, unser Cookie wird gelöscht. 🎜🎜🎜Weitere Informationen zu Knoten finden Sie unter: 🎜nodejs-Tutorial🎜! 🎜

Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, wie Node+Express Cookies betreibt. 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