2013-01-18 60 views
4

我正在將會話Cookie設置爲PassportJS的一部分。我可以看到connect.sid cookie傳遞給瀏覽器,並在隨後的HTTP請求中返回到應用程序。快遞中的req.cookies未被填充

但是,當我讀取我的一個路由中的req.cookies時,它是空的。我在配置設置中設置了express.cookieParser(),express.session()和passport.session()。爲了在Express/Node中使用cookie,是否還需要做其他事情?

這裏是我的應用程序的配置設置:

app.configure(function() { 
    app.set("db_url", config.db[app.settings.env]); 
    app.set('port', process.env.PORT || 3000); 
    app.use(express.logger('dev')); /* 'default', 'short', 'tiny', 'dev' */ 
    app.use(express.static(path.join(__dirname, 'public'))); 
    app.use(express.cookieParser()); 
    app.use(express.bodyParser()); 
    app.use(express.session({secret: "keyboard cat"})); 
    app.use(passport.initialize()); 
    app.use(passport.session()); 
    app.use(users); 
    app.use(orgs); 
    app.use(errorHandler); 
}); 

謝謝!

+0

你可以給鏈接到這個視頻http://vimeo.com/56166857,TJ評論是非常有用的 – nha

回答

-1

嘗試req.session而不是req.cookies。如果你想存儲的cookie中的信息,你需要將它們類似於設置爲

res.cookie('remember', 1, { maxAge: 60 * 1000 }); 

然後req.cookies應該包含

{ remember: '1' } 

req.session的默認值是

{ cookie: 
    { path: '/', 
    _expires: null, 
    originalMaxAge: null, 
    httpOnly: true 
    } 
}