zoukankan      html  css  js  c++  java
  • 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();
    });
    

      

  • 相关阅读:
    Python—使用列表构造队列数据结构
    js数组及对象去重
    当z-index遇上transform
    echarts y轴百分比显示
    在vue-cli项目中使用echarts
    IE中在a标签里的图片会显示边框
    css 三种清除浮动(float)的方法
    js技巧
    深入理解 函数、匿名函数、自执行函数
    即时反应的input和propertychange方法
  • 原文地址:https://www.cnblogs.com/jkko123/p/10293576.html
Copyright © 2011-2022 走看看