express node-cookie
cd node-cookie npm i
因cookie-parser是express框架內置的,全部不用再手動安裝了。前端
在./routes/users.js
文件裏新建一個路由/setcookie
,並在該路由內設置路由。也能夠設置多個cookie,獲得cookie時也就是多個。node
router.get('/setcookie', (req, res, next) => { res.cookie('name', 'stone', {maxAge: 6000, httpOnly: true}) res.send('success for set up') })
一旦cookie設置成功後,前端與後端通訊時會在請求頭裏帶上cookie.後端使用req.cookies
獲得。git
router.get('/getcookie', (req, res, next) => { res.send(JSON.stringify(req.cookies)) // {"name":"stone"} })
在no.3步設置的cookie明文。若須要簽名,則能夠使用cookie-parser
模塊的signed: true
屬性。express
// app.js app.use(cookieParser('secrete')) // 其參數用於加簽名、解簽名時。 // 測試一下加密、解密功能。 // ./routes/users.js router.get('/setcookie', (req, res, next) => { res.cookie('name', 'stone', {maxAge: 60000, httpOnly: true}) res.cookie('name1', 'stone', {maxAge: 60000, httpOnly: true}) res.cookie('name20', 'stone', {maxAge: 60000, httpOnly: true, signed: true}) res.cookie('name21', 'stone', {maxAge: 60000, httpOnly: true, signed: true}) res.send('success for set up') })
// ./routes/users.js router.get('/getcookie', (req, res, next) => { let o = { unsign: req.cookies, signed: req.signedCookies } res.json(o) })
設置cookie時使用的res.cookie
的第三個參數是cookie的限制屬性。npm
cookie-parser 是一個解析/設置cookie的模塊。在express框架使用須要憑藉如下代碼。json
var express = require('express') var cookieParser = require('cookie-parser') var app = express() app.use(cookieParser('signText')) // 若使用簽名必須設置secret string, // app.use(cookieParser()) // 這是不使用簽名的。
這裏有我翻譯的cookie-parser的文檔。後端
因cookie會保存在client,因此最好不保存敏感信息。
因有些瀏覽器對cookie大小、數量有限制,因此不能設置太多cookie.
所以會使用cookie保存session ID 的方式解決以上2個缺點。瀏覽器