私は 0.8.21 nodejs と 3.1.0 Express Framework を持っています (モジュールは最新です)。Express、mongodb、およびパスポート認証を備えた有名なherokuプロジェクトがあります。
https://github.com/madhums/nodejs-express-mongoose-demo
セッション ストレージ:
var express = require('express')
, mongoStore = require('connect-mongo')(express)
...
app.use(express.logger('dev'))
// set views path, template engine and default layout
app.set('views', config.root + '/app/views')
app.set('view engine', 'jade')
app.configure(function () {
// dynamic helpers
app.use(viewHelpers(config))
// cookieParser should be above session
app.use(express.cookieParser())
// bodyParser should be above methodOverride
app.use(express.bodyParser())
app.use(express.methodOverride())
// express/mongo session storage
app.use(express.session({
secret: 'noobjs',
store: new mongoStore({
url: config.db,
collection : 'sessions'
})
}))
// connect flash for flash messages
app.use(flash())
// use passport session
app.use(passport.initialize())
app.use(passport.session())
app.use(express.favicon())
// routes should be at the last
app.use(app.router)
...
質問:ユーザーが 70 秒間だけログインできるようにしたいので、後で何が起こるかを書きcookie: {maxAge: 70*1000},
ましapp.use(express.session({
た。ユーザーがページを更新するか、リンクに移動した場合、セッションは次のようにデータベースに更新されます。
{ "_id" : "cVYWfv7kHbaEPNUCD2Bbbaw4",
"session" : "{\"cookie\":{\"originalMaxAge\":70000,\"expires\":\"2013-03-02T14:46:52.146Z\",\"httpOnly\":true,\"path\":\"/\"},\"passport\":{\"user\":\"51320f3fd04c162d14000003\"},\"flash\":{}}",
"expires" : Date( 1362235612146 ) }
とにかく、ユーザーは 70 秒しかログオンしていません。つまり、セッションはmongodb、新しいexpires
日付に更新されますが、ユーザーはログインしてから70秒しかログインできません。
お願い助けて。ありがとうございました。