gpt4 book ai didi

node.js - 将 session 写入 MongoDB 时出错

转载 作者:行者123 更新时间:2023-12-02 23:59:41 33 4
gpt4 key购买 nike

我正在开发一个 Node 应用程序并使用 MongoDB 来存储 session 。该应用程序使用 Linkedin oAuth 和 MongoDB。

我的代码:

var store = new MongoDBStore({
uri: mongoUri,
collection: '_sessions',
function(err) {
console.log(err);
}
});

// Catch MONGO CONNECTION errors
store.on('error', function(error) {
assert.ifError(error);
assert.ok(false);
});

// if (isLocal) {
// app.use(session({resave: 'true', saveUninitialized: 'true', secret: 'keyboardcat'}));
// }else{
// }
app.use(session({
store: store,
resave: 'true',
saveUninitialized: 'true',
secret: process.env.SESSION_SECRET,
cookie: {
maxAge: 1000 * 60 * 60 * 24 * 7
}
}));

应用启动时出现以下错误。

Error: Error setting ZwkuhpnbkYgD1HzscBJ8w2fmhwZpiQPL to Session {
cookie:
{ path: '/',
_expires: 2016-09-20T22:20:15.753Z,
originalMaxAge: 604800000,
httpOnly: true,
secure: null,
domain: null },
passport: {},
'oauth2:www.linkedin.com': { state: 'DqyHf7eqG8RCN7BYRkG9NSUV' } }: The dotted field 'oauth2:www.linkedin.com' in 'session.oauth2:www.linkedin.com' is not valid for storage.
at /Users/vc/Sites/HavasCognitiveID/node_modules/connect-mongodb-session/index.js:147:19
at handleCallback (/Users/vc/Sites/HavasCognitiveID/node_modules/connect-mongodb-session/node_modules/mongodb/lib/utils.js:96:12)
at /Users/vc/Sites/HavasCognitiveID/node_modules/connect-mongodb-session/node_modules/mongodb/lib/collection.js:1008:42
at handler (/Users/vc/Sites/HavasCognitiveID/node_modules/mongodb-core/lib/topologies/replset.js:414:5)[nodemon] restarting due to changes...

我知道 mongodb 提示虚线字段。我的问题是,在用户经过身份验证之后,如何在将其写入 Passport 之前拦截 session :{}?

最佳答案

您可以在定义 LinkedIn 策略时将其添加为选项来覆盖所使用的“sessionKey”

passport.use(new LinkedinStrategy({ ...options, sessionKey: 'linkedin'},Strategy.linkedin));

关于node.js - 将 session 写入 MongoDB 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39481718/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com