2013-09-25 2 views
2

Я хочу использовать куки сессии, магазин с паспортом, потому что магазин памяти не предназначен для производства:Использование cookieSession с паспортом

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

Вот мой Экспресс инициализации:

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.cookieSession - express.session. При использовании cookieSession вход пользователя успешно завершен, но пользователь больше не регистрируется после загрузки следующей страницы. Любые советы, как сделать работу паспорта с сессиями cookie?

Я использую Экспресс 3.0.0

ответ

0

инициализация cookieSession не является правильным. Попробуйте это:

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

Кроме того, убедитесь, что sessionTimeout в миллисекундах.

+0

Спасибо, но не помогло: \ –

+0

@MattiLehtinen хорошо, что можно заставить его работать, я это сам :) Может быть, вы можете использовать ваши браузеры устр инструменты см., что отправляется туда и обратно между браузером и сервером с точки зрения файлов cookie и т. д. – robertklep

+0

Я выполняю аутентификацию через ajax POST-вызов, и кажется, что браузер не устанавливает cookie, хотя возвращается следующее: 'Set-Cookie: local.sess = s% 3Aj% 3A% 7B% 22passport% 22% 3A% 7B % 22user% 22% 3A5% 7D% 7D.OPxdoZ1oPKboHJEhz7uSPJiBxSIRavEByC7f1yEn1Xc; Path = /; Expires = Thu, 17 Oct 2013 16:09:36 GMT; HttpOnly' Мой сервер работает на 'localhost: 3000', а клиент JS загружается с того же сервера. –

0

Я знаю, что это старый, но у меня была та же проблема. Оказывается, вам не нужно (на самом деле вы не можете) установить параметр secret как в cookieParser, так и в cookieSession.

Смотрите мой ответ на мой пост: https://stackoverflow.com/a/30109922/3500059

Смежные вопросы