javascript – 如何使用客户端会话持续时间和activeDuration使会话最后持续30天

根据 https://github.com/mozilla/node-client-sessions#usage
var sessions = require("client-sessions");
app.use(sessions({
  cookieName: 'mySession',// cookie name dictates the key name added to the request object
  secret: 'blargadeeblargblarg',// should be a large unguessable string
  duration: 24 * 60 * 60 * 1000,// how long the session will stay valid in ms
  activeDuration: 1000 * 60 * 5 // if expiresIn < activeDuration,the session will be extended by activeDuration milliseconds
}));

我希望用户的会话最多有效30天.如果我将持续时间设置为30天,将活动持续时间设置为30天,我想我最终将会有60天的会话时间.

如果我将持续时间设置为15天并且将活动持续时间设置为15天,那么登录用户不会在15天内完成任何操作(不是我希望那种用户行为,但我的假设是否正确? )

我想要的只是每次用户访问网站以获得30天才需要重新登录.我该如何获得这种行为?

解决方法

您可以使用快速会话NPM来实现您的功能

这是代码和参考链接

码:

let session = require('express-session')
let time = new Date(Date.Now() + (30 * 86400 * 1000))
let app = express()
let sess = {
  secret: 'keyboard_cat',cookie: { maxAge: time }
}

if (app.get('env') === 'production') {
  app.set('trust proxy',1) // trust first proxy
  sess.cookie.secure = true // serve secure cookies
}

app.use(session(sess))

app.use(session({
  genid: function(req) {
    return genuuid() // use UUIDs for session IDs
  },secret: 'keyboard cat'
}))

//call your route and do session things here
app.get('/',function(req,res,next) {
  if (req.session.views) {
    req.session.views++
    res.setHeader('Content-Type','text/html')
    res.write('<p>views: ' + req.session.views + '</p>')
    res.write('<p>expires in: ' + (req.session.cookie.maxAge / 1000) + 's</p>')
    res.end()
  } else {
    req.session.views = 1
    res.end('welcome to the session demo. refresh!')
  }
})

有关更多信息,请参阅此链

NPM package

example

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...