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

      

  • 相关阅读:
    什么是继承?
    程序员兄弟们,我们的基本素质怎么样?
    C#基础概念二十五问
    windows mobile 5.0 PocketPC模拟器上网的设置
    数据库设计中的14个技巧
    Microsoft SQL Server 2005 存储过程翻页
    在.Net如何制作自定义的快捷方式(转)
    ActiveSync 没有DMA端口问题的解决方法
    原型模式(Prototype Pattern)
    获取鼠标和键盘长时间不动的时间
  • 原文地址:https://www.cnblogs.com/jkko123/p/10293576.html
Copyright © 2011-2022 走看看