使用express-session来保存登录状态

  • Post author:
  • Post category:其他


1 使用express-session来保存登录状态

1.1 什么是session

由于HTTP是无状态的,所以服务器在每次连接中持续保存客户端的私有数据,此时需要结合cookie技术,通过session会话机制,在服务器端保存每个HTTP请求的私有数据;

1.2 session原理

在服务器内存中开辟一块地址空间,专门存放每个客户端私有的数据,每个客户端根据cookie中保存的私有sessionId,可以获取到独属于自己的session数据。

1.3 在express中使用session

  1. 安装session模块

    npm install express-session -S

  2. 导入session模块

    var session = require(‘express-session’)

  3. 在express中使用session中间件:

    // 启用 session 中间件

    app.use(session({


    secret: ‘keyboard cat’, // 相当于是一个加密密钥,值可以是任意字符串

    resave: false, // 强制session保存到session store中

    saveUninitialized: false // 强制没有“初始化”的session保存到storage中

    }))

  4. 将私有数据保存到当前请求的session会话中:

    // 将登录的用户保存到session中

    req.session.user = result.dataValues;

    // 设置是否登录为true

    req.session.islogin = true;

  5. 通过destroy()方法清空session数据:

    req.session.destroy(function(err){


    if(err) throw err;

    console.log(‘用户退出成功!’);

    // 实现服务器端的跳转,这个对比于 客户端跳转

    res.redirect(’/’);

    });



版权声明:本文为qq_43414697原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。