>  기사  >  웹 프론트엔드  >  node+express가 쿠키를 작동하는 방법에 대해 이야기해 보겠습니다.

node+express가 쿠키를 작동하는 방법에 대해 이야기해 보겠습니다.

青灯夜游
青灯夜游원래의
2022-06-22 10:01:082180검색

node+express는 쿠키를 어떻게 운영하나요? 다음 글에서는 nodejs를 사용하여 쿠키를 운영하는 방법을 소개하겠습니다. 도움이 되셨으면 좋겠습니다!

node+express가 쿠키를 작동하는 방법에 대해 이야기해 보겠습니다.

쿠키: 때로는 복수형 쿠키도 사용됩니다. 유형은 "작은 텍스트 파일"이며, 이는 사용자의 신원을 식별하고 세션 추적을 수행하기 위해 일부 웹사이트에서 사용자의 로컬 단말기에 저장하는 데이터(일반적으로 암호화됨)입니다. 정보는 사용자의 클라이언트 컴퓨터에 일시적 또는 영구적으로 저장됩니다.


node를 사용하여 쿠키를 작동하려면 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)
})

node+express가 쿠키를 작동하는 방법에 대해 이야기해 보겠습니다.

node+express가 쿠키를 작동하는 방법에 대해 이야기해 보겠습니다.

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

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

node+express가 쿠키를 작동하는 방법에 대해 이야기해 보겠습니다.

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

node+express가 쿠키를 작동하는 방법에 대해 이야기해 보겠습니다.

maxAge0时会删除我们的cookierrreee

다음으로 이 모듈을 파일에 도입하세요rrreee

🎜매개변수에 대한 자세한 설명🎜 🎜
🎜name: 쿠키를 고유하게 식별하는 이름입니다.
값: 쿠키에 저장된 문자열 값입니다.
도메인: 쿠키는 해당 도메인에 유효합니다.
경로: 브라우저는 이 구성에 따라 지정된 도메인의 일치하는 경로로 쿠키를 보냅니다.
만료: 만료 시간, 쿠키가 만료되는 시기를 나타냅니다. 이 시간이 설정되지 않으면 페이지가 닫힐 때 브라우저가 모든 쿠키를 삭제하지만 만료 시간을 직접 설정할 수도 있습니다.
참고: 클라이언트와 서버가 설정한 시간이 일치하지 않을 경우 사용 만료 시 편차가 발생합니다.
max-age: 이 쿠키가 만료되는 기간(초)을 브라우저에 알려주는 데 사용됩니다. 일반적으로 max-age는 만료보다 우선순위가 높습니다.
HttpOnly: document.cookie 스크립트가 값을 변경하는 것을 허용하지 않도록 브라우저에 지시합니다. 이 값은 document.cookie에도 표시되지 않지만 http 요청은 이 쿠키를 전달합니다. 스크립트에서 사용하는 것은 바람직하지 않지만, 브라우저 설치 디렉터리에 파일 형태로 존재합니다. 이 설정은 일반적으로 서버 측에서 설정됩니다.
secure: 보안 플래그를 지정하면 secure가 true인 경우 HTTP에서는 유효하지 않으며 HTTPS에서만 유효합니다. 이는 생성된 쿠키가 HTTPS 연결의 세션에 대해서만 서버에 전달될 수 있음을 의미합니다. 확인, HTTP 연결인 경우 이 정보가 전달되지 않으므로 일반적으로 들리지 않습니다. 🎜
🎜🎜읽기 문제 정보🎜🎜
  • 🎜req.cookies: 읽은 것은 암호화되지 않은 쿠키입니다.🎜 li>
  • 🎜req.signedCookies: 암호화된 쿠키를 읽어보세요. 🎜
🎜🎜Case🎜🎜rrreee🎜 여기에 이미지 설명 삽입🎜🎜여기에 이미지 설명 삽입 🎜rrreee🎜여기에 이미지 설명 삽입🎜rrreee🎜 여기에 이미지 설명 삽입🎜🎜🎜whenmaxAge When 0이면 쿠키가 삭제됩니다. 🎜🎜🎜노드 관련 지식을 더 보려면 🎜nodejs 튜토리얼🎜을 방문하세요! 🎜

위 내용은 node+express가 쿠키를 작동하는 방법에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.