Maison > interface Web > js tutoriel > Parlons de la façon dont node+express gère les cookies

Parlons de la façon dont node+express gère les cookies

青灯夜游
Libérer: 2022-06-22 22:01:19
original
2320 Les gens l'ont consulté

Comment node+express gère-t-il les cookies ? L'article suivant vous présentera comment utiliser nodejs pour gérer les cookies. J'espère qu'il vous sera utile !

Parlons de la façon dont node+express gère les cookies

Cookie : Parfois, sa forme plurielle Cookies est également utilisée. Il s'agit de « petits fichiers texte », qui sont des données (généralement cryptées) stockées sur le terminal local de l'utilisateur par certains sites Web afin d'identifier l'identité de l'utilisateur et d'effectuer un suivi de session. Les informations sont enregistrées temporairement ou définitivement par l'ordinateur client de l'utilisateur.


Pour utiliser node pour gérer les cookies, nous avons besoin du module cookie-parser cookie-parser模块

npm i cookie-parser -s
Copier après la connexion

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

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

参数详解

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)
})
Copier après la connexion

Parlons de la façon dont node+express gère les cookies

Parlons de la façon dont node+express gère les cookies

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

    console.log(req.cookies)
    res.send(req.signedCookies)
})
Copier après la connexion

Parlons de la façon dont node+express gère les cookies

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')
})
Copier après la connexion

Parlons de la façon dont node+express gère les cookies

maxAge0时会删除我们的cookierrreee

Ensuite, introduisez ce module dans notre fichierrrreee

🎜Explication détaillée des paramètres🎜🎜
🎜name : Un nom qui identifie de manière unique le cookie.
value : La valeur de la chaîne stockée dans le cookie.
domaine : le cookie est valide pour ce domaine.
Chemin : indique le chemin affecté par ce cookie. Le navigateur enverra les cookies au chemin correspondant dans le domaine spécifié en fonction de cette configuration.
expire : délai d'expiration, indiquant quand le cookie expire. Si ce délai n'est pas défini, le navigateur supprimera tous les cookies à la fermeture de la page, mais nous pouvons également définir nous-mêmes le délai d'expiration.
Remarque : Si l'heure définie par le client et le serveur est incohérente, il y aura un écart à l'expiration de l'utilisation.
max-age : Utilisé pour indiquer au navigateur combien de temps ce cookie expirera (en secondes). Généralement, max-age a une priorité plus élevée que expire.
HttpOnly : indique au navigateur de ne pas autoriser le script document.cookie à modifier la valeur. Cette valeur est également invisible dans document.cookie, mais la requête http portera ce cookie
Remarque : bien que cette valeur. Il est déconseillé de l'utiliser dans un script, mais il existe sous la forme d'un fichier dans le répertoire d'installation du navigateur. Ce paramètre est généralement défini côté serveur.
secure : indicateur de sécurité. Lorsqu'il est spécifié, lorsque secure est vrai, il n'est pas valide en HTTP et uniquement valide en HTTPS. Cela signifie que le cookie créé ne peut être transmis au serveur que par le navigateur pour une session en connexion HTTPS. Vérification, s'il s'agit d'une connexion HTTP, cette information ne sera pas transmise, elle ne sera donc généralement pas entendue. 🎜
🎜🎜À propos des problèmes de lecture🎜🎜
  • 🎜req.cookies : ce qui est lu est notre cookie non chiffré ;🎜 li>
  • 🎜req.signedCookies : Lisez nos cookies cryptés. 🎜
🎜🎜Cas🎜🎜rrreee🎜 Insérer la description de l'image ici🎜🎜Insérer la description de l'image ici 🎜rrreee🎜Insérer la description de l'image ici🎜rrreee🎜 Insérer la description de l'image ici🎜🎜🎜whenmaxAge When est 0, notre cookie sera supprimé. 🎜🎜🎜Pour plus de connaissances sur les nœuds, veuillez visiter : 🎜tutoriel Nodejs🎜 ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal