我正在使用 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 中存储会话。