Heim > Artikel > Web-Frontend > Lassen Sie uns darüber sprechen, wie Node+Express Cookies betreibt
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!
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) })
app.get('/user', (req, res) => { console.log(req.cookies) res.send(req.signedCookies) })
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') })
当maxAge
为0
时会删除我们的cookie
rrreee
Als nächstes stellen wir dieses Modul in unserer Datei vorrrreee
🎜Detaillierte Erläuterung der Parameter🎜 🎜🎜Name: Ein Name, der das Cookie eindeutig identifiziert.🎜🎜Über Leseprobleme🎜🎜
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. 🎜
maxAge 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!