美文网首页
express框架中session持久化存储

express框架中session持久化存储

作者: 愤怒的coder | 来源:发表于2020-01-09 17:13 被阅读0次

在web开发中,我们经常后听到前端程序员的依据抱怨"又重启了啊?我又要重新登录",这是因为在传统的web开发中,服务器一旦关机,内存中的会话信息会丢失,就跟前端开发存在变量中的数据,浏览器刷新后会丢失一样。为了解决这个问题,引入了session持久化的概念,将服务端和客户端的会话信息保存到一个载体中,不管服务器怎么重启,只要载体中的信息没有丢失,就能拿到会话信息,载体一般为数据库或者文件,但是,得益于redis的特性,我们一般选择用redis作为存储载体。下面是nodejs中用redis做session持久化的例子

// app.js
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
var radisOptions = {
    'host': 'localhost',
    'port': '6379',
    'ttl': 7200, // 存储时间,单位秒,这个时间要和下面session中间件的cookie选项时间一致
    'logErrors': false
  };
var sessionOptions = {
  secret : 'secret', // 对session id 相关的cookie 进行签名
  resave : true,
  rolling: true,
  saveUninitialized: true, // 是否保存未初始化的会话
  cookie : {
      maxAge : 1000 * 60 * 60 * 2, // 设置 session 的有效时间,单位毫秒 这里设置两小时
  },
};
// 生产环境开启持久化存储
if (config.get('enviroment') === 'prod') {
  sessionOptions.store = new RedisStore(radisOptions)
}
app.use(session(sessionOptions));

相关文章

  • express框架中session持久化存储

    在web开发中,我们经常后听到前端程序员的依据抱怨"又重启了啊?我又要重新登录",这是因为在传统的web开发中,服...

  • connect-redis

    github 传送门 简介 这是一个关于session的持久化插件, 配合 express-session使用。此...

  • 模板

    express: web 框架 express-session: session 中间件 connect-m...

  • Express框架-会话持久化

    在express4.0之前的版本,像session,cookieParser之类的中间件是伴随express自动安...

  • Shiro 中的 SessionDAO

    SessionDAO是用于session持久化的,SessionManager只是负责session的管理,持久化...

  • 如何Mock Express的会话

    文章翻译自How to Mock an Express session。 你是否正在使用Express框架?你是不...

  • express-session

    express 中操作 session 要用到express-session(https://github.com...

  • 前端持久化登录信息localstorage方法

    localStorage用于持久化的存储;但是限时保存用户的登录信息,除了cookie和session,local...

  • 十、Hibernate初体验

    Hibernate是持久层的ORM映射框架,专注于数据的持久化工作。所谓的持久化,就是将内存中的数据永久存储到关系...

  • iOS数据持久化

    Title: iOS数据持久化 ##数据持久化概念 数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型...

网友评论

      本文标题:express框架中session持久化存储

      本文链接:https://www.haomeiwen.com/subject/qwzyactx.html