0

我正在使用 connect-mongo 包将会话存储在 mongoDB 中。

我按照https://www.npmjs.com/package/connect-mongo上的包文档设置了以下代码:

const session = require('express-session')
const MongoStore = require('connect-mongo')

const storeOptions = MongoStore.create({
  mongoUrl: 'mongodb://localhost/testt',
  mongoOptions: {
    useNewUrlParser: true,
    useUnifiedTopology: true,
  },
  crypto: {
    secret: 'squirrel'
  },
  autoRemove: 1 / 60000
})

app.use(session({
  secret: process.env.SESSION_SECRET,
  resave: false,
  saveUninitialized: false,
  cookie: {
    // secure:true,
    maxAge: 5 * 60 * 60 * 1000,    //  5 hours in milliseconds
  },
  store: storeOptions
}))

在我在上面的代码中使用这部分之前,一切都运行良好:

crypto: {
    secret: 'squirrel'
  }

现在我在终端中收到一个错误,上面写着Unable to parse ciphertext object!

我敢肯定这是crypto因为MongoStore.create()

我应该怎么办?

除了问题之外的一个请求:我是新手并且自己学习身份验证,但我没有在会话中获得任何资源(除了包文档)并将会话存储在 DB 中而不是 memoryState() 中。所以你能告诉我这是正确的方式还是有其他有效的方式在 mongoDB 中存储会话。

4

0 回答 0