[英]How do I dynamically set the session cookie's expires/maxAge in Express/Node.js?
[英]cookie-session maxAge is not set, always expires in 1 year
我正在編寫一個快速應用程序,並且正在使用cookie會話來保持Google OAuth2 Passport會話(只是一個電子郵件地址,沒有其他)。 我通過了OAuth身份驗證,並創建了兩個cookie,但是,兩個cookie始終都設置為從身份驗證之日起1年過期。 我嘗試過的事情:
maxAge
和maxage
作為對象鍵(來自另一個Stack Overflow帖子的想法,有人提到maxAge
不起作用。) { passport: { user: bill@bill.com }}
req.cookieOptions
未設置任何req.cookieOptions
。 但是,這兩個cookie都確實顯示在req.cookies
中。 這是一些代碼:
var cookieParser = require('cookie-parser');
var session = require('cookie-session');
var expiryDate = new Date(Date.now() + 60 * 60 * 1000) // 1 hour
var sessionOptions = {
name: 'cookie_name',
secret: 'top secret',
cookie : { httpOnly: true, maxAge: expiryDate }
}
app.use(cookieParser());
app.use(session(sessionOptions));
app.get('/auth/provider',
passport.authenticate('google', { scope: ['profile', 'email'] }))
app.get('/auth/google/callback',
passport.authenticate('google'),
function(req, res) {
// session is set here correctly. Again, no cookieOptions, expires in 1 year.
res.redirect('/posts');
});
有什么想法為什么cookie會話會以這種方式運行? 先謝謝您的幫助。
根據cookie-session
的文檔, options
對象是平坦的。 您添加了其他保存值的鍵cookie
。
根據文檔,選項應為
var sessionOptions = {
name: 'cookie_name',
secret: 'top secret',
httpOnly: true,
maxAge: expiryDate
}
express-session
中間件希望cookie選項在key cookie
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.