【发布时间】:2018-09-24 11:45:54
【问题描述】:
所以我想在我的 Mongo db 数据库中为用户存储一个会话。我正在使用 express-session 和 connect-mongo npm 包。
const MongoStore = require('connect-mongo')(session);
const session = require('express-session');
app.use(session({
secret: 'secret',
resave: true,
saveUninitialized: false,
store: new MongoStore({
mongooseConnection: db
})
}));
我将它存储在会话中
req.session.userId = IdOfUserFromDatabaseQuery;
{
"_id" : "hcog9Z9Jjawb5joIax-z1Wv7txV--nYA",
"session" : "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"summoner\":\"Blis\",\"summonerId\":\"5ba7ec0293b6220cc2f12959\"}",
"expires" : ISODate("2018-10-07T20:39:41.911Z")
}
会话密钥:值编码为 "{\"cookie\":... 我希望它是 {cookie:...
我搜了一下,发现这种编码方式就是双重编码。我检查过。当我将它放入会话时,我没有对其进行编码,这意味着可能发生的是 express-session 自动 JSON 编码,以及当我使用时......
store: new MongoStore({
mongooseConnection: db
})
}));
要将会话连接到 mongo 数据库,它可能会再次对其进行编码。当我使用 MongoStore 函数将它存储在数据库中时,如何阻止它被编码。
【问题讨论】:
标签: json mongodb express session