node.js中express使用cookie-parser 和 cookie-session处理会话

cookie-parser 中间件用来解析客户端传过来的cookie,cookie-session 中间件用来建立基于cookie的会话session。

一、安装 cookie-parser 和 cookie-session

npm install cookie-parser
npm install cookie-session

  

二、使用 cookie-parser 解析

const express = require('express');
const cookieParser = require('cookie-parser');

let app = express();
app.listen(8888);

//使用解析cookie中间件
//cookieParser()参数一,用来设置签名密钥,可以是一个数组,设置多个。
app.use(cookieParser());

app.get('/', function (req, res) {
    //获取cookie信息
    console.log('Cookies: ', req.cookies);

    //设置cookie
    //参数一表示,cookie名称
    //参数二表示,cookie的值
    //参数三表示,cookie的配置选项
    // domain 域名
    // path 路径
    // expires 过期时间
    // maxAge 有效时间(以毫秒为单位)
    // httpOnly 只能由web服务器访问
    // secure 是否与https一起使用
    // signed 是否签名
    res.cookie('test', 'test', {path: '/', expires: new Date(Date.now() + 3600 * 1000)});

    res.cookie('name', 'xiaoxu', {maxAge: 3600 * 1000});

    res.end();
});

为了防止cookie信息被篡改,我们可以设置签名。

const express = require('express');
const cookieParser = require('cookie-parser');

let app = express();
app.listen(8888);

//使用解析cookie中间件
//cookieParser()参数一,用来设置签名密钥,可以是一个数组,设置多个。
app.use(cookieParser('fermtp34n537m3o450'));

app.get('/', function (req, res) {
    //获取cookie信息
    console.log('cookies: ', req.cookies);

    //设置使用签名
    res.cookie('test', 'test', {signed: true});

    //使用签名的cookie通过下面方式获取
    console.log('signedCookies: ', req.signedCookies);

    res.end();
});

  

二、使用 cookie-session 处理会话

注意cookie-session中间件是基于cookie的,会把会话信息存储在cookie里。

const express = require('express');
const cookieSession = require('cookie-session');

let app = express();
app.listen(8888);

app.use(cookieSession({
    //会话在cookie中的名称
    name: 'session',
    //用于签名的密钥
    keys: ['j239r5ndgffte'],
    //cookie过期时间,单位毫秒
    maxAge: 3600 * 1000
}));

app.get('/', function (req, res) {
    //获取会话数据
    console.log(req.session);

    //设置会话数据
    req.session.name = 'xiaoxu';
    req.session.age = 24;
    req.session.sex = '男';

    res.end();
});

  

 

转载于:https://www.cnblogs.com/jkko123/p/10293576.html

你可能感兴趣的:(node.js中express使用cookie-parser 和 cookie-session处理会话)