Skip to content

Latest commit

 

History

History
67 lines (59 loc) · 1.67 KB

180701.md

File metadata and controls

67 lines (59 loc) · 1.67 KB

express: cookie和session

express设置cookie

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看请求携带的cookie

当使用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())
对cookie进行签名
// app.use(cookieParser('signed')); 利用cookie-parser加密
...
res.cookie('name', 'value', {
  maxAge: 60 * 60 * 1000,
  httpOnly: true, // 只能被服务器获取标识
  path: '/',
  signed: true // 签名
  // secure:true //设置该选项,只有https网站才可以输出该cookie
})
获取cookie
  1. 获取未签名的cookie(req.cookie)
  2. 获取签名的cookie(req.signeCookie)防止更改

session

session和cookie的作用是一样的,也是存储用户信息,但是session是存储在服务器端的。session还需借助cookie将唯一标识sessionID存到客户端。

express使用cookie-session

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