2

我想将 cookie 会话存储与 Passport 一起使用,因为内存存储不是为生产而设计的:

Warning: connection.session() MemoryStore is not
designed for a production environment, as it will leak
memory, and will not scale past a single process.

这是我的 Express 初始化:

app.use(express.bodyParser({keepExtensions:true}));
app.use(express.cookieParser(cookieSecret));
app.use(express.cookieSession({ 
    key: cookieKey,
    secret: cookieSecret,
    maxAge: sessionTimeout
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(express.methodOverride());
app.use(express.static(__dirname + '/public'));

如果我更改express.cookieSessionexpress.session. 当使用cookieSession用户登录成功但在下一页加载后用户不再登录时。任何提示如何使护照与 cookie 会话一起工作?

我正在使用 Express 3.0.0

4

2 回答 2

1

的初始化cookieSession不正确。尝试这个:

app.use(express.cookieSession({ 
  key    : cookieKey,
  secret : cookieSecret,
  cookie : {
    maxAge: sessionTimeout
  }
}));

另外,请确保sessionTimeout以毫秒为单位。

于 2013-10-15T14:39:14.593 回答
1

我知道这是旧的,但我有同样的问题。事实证明你不需要(事实上你不能)secret在 cookieParser 和 cookieSession 中设置选项。

在我自己的帖子上查看我的答案:https ://stackoverflow.com/a/30109922/3500059

于 2015-05-07T19:29:04.513 回答