app.get('/', function (req, res) {
console.log('Cookies: ', req.cookies)
res.cookie('name', 'value', {
maxAge: 60 * 60 * 1000,
httpOnly: true,
path: '/',
// secure:true //设置该选项,只有https网站才可以输出该cookie
})
res.send('hello world')
})
当使用cookie-parser中间件的时候,可以通过express中的request对象的cookies属性req.cookies查看cookies的值,
npm install cookie-parser
var express = require('express')
var cookieParser = require('cookie-parser')
var app = express()
app.use(cookieParser())
// app.use(cookieParser('signed')); 利用cookie-parser加密
...
res.cookie('name', 'value', {
maxAge: 60 * 60 * 1000,
httpOnly: true, // 只能被服务器获取标识
path: '/',
signed: true // 签名
// secure:true //设置该选项,只有https网站才可以输出该cookie
})
- 获取未签名的cookie(req.cookie)
- 获取签名的cookie(req.signeCookie)防止更改
session和cookie的作用是一样的,也是存储用户信息,但是session是存储在服务器端的。session还需借助cookie将唯一标识sessionID存到客户端。
let cookieSession = require('cookie-session');
let express = require('express');
//生成加密数组
(function (params) {
let keys = [];
for (let i = 0; i < 10000; i++) {
keys[i] = 's_' + Math.random();
}
app.use(cookieSeesion({
name: 'ss',
keys: keys,
maxAge: 60 * 60 * 1000
}))
})()