connect-mongo MongoStore会话实际上是如何保存的?

时间:2014-05-21 03:40:01

标签: node.js mongodb session

我使用 Passport 实施了会话,但是为了存储会话,我尝试 connect-mongo 使用 mongoose 连接。

这是我的代码(会话部分):

var express     =       require('express')
var mongodb     =       require('mongodb')
var mongoose    =       require('mongoose')
var bodyParser  =       require('body-parser')
var cookie      =       require('cookie-parser')
var connect     =       require('connect')
var passport    =       require('passport')
//var flash         =       require('connect-flash')
var session     =       require('express-session');
var MongoStore  =       require('connect-mongo')(session);
var LocalStrategy =     require('passport-local').Strategy;

var app = express()

var BSON = mongodb.BSONPure

app.use(express.static(__dirname+"/public"))
app.use(bodyParser())
app.use(cookie())
app.use(connect.session({ secret: 'ilovescotchscotchyscotchscotch' })); 
app.use(passport.initialize());
app.use(passport.session());

mongoose.connect('mongodb://localhost/psicologosTuxtepecDB')



var Schema = mongoose.Schema
var userCredential = new Schema({

    username:   String,
    password:   String

},  {
    collection:     'members'
})

var userCredentials = mongoose.model('members', userCredential)



app.use(session({
    secret: 'ziKologiia',
    clear_interval: 900,
    cookie: { maxAge: 2 * 60 * 60 * 1000 },
    store: new MongoStore({
      db : mongoose.connection.db
    })
  }));

我怀疑是否会适得其反的是app.use(connect.session({ secret: 'ilovescotchscotchyscotchscotch' })) is using连接模块,但MongoStore配置是在express-session变量上设置的。但是,首先删除会导致应用无法正常工作(不会进行身份验证/重定向)。

所以,关于我的问题标题。 该会话存储在哪里?我真的以为我可以访问我的Mongo数据库并找到存储它的集合

如何在后端(Mongo)甚至在Java Script对象的应用程序中找到此类会话?

2 个答案:

答案 0 :(得分:9)

connect-mongo将会话存储在"sessions" collection by default中。它们应该存在于mongo shell或任何GUI工具(如robomongo)中。是的,它是默认创建的。我会传递the mongooose_connection option而不是db

来自文档:

  

mongoose_connection格式:someMongooseDb.connections [0]使用现有的mongoose连接。 (可选)

答案 1 :(得分:3)

你应该做的一件事是替换

app.use(connect.session({ secret: 'ilovescotchscotchyscotchscotch' }));

与你的

app.use(session({
  secret: 'ziKologiia',
  clear_interval: 900,
  cookie: { maxAge: 2 * 60 * 60 * 1000 },
  store: new MongoStore({
    db: mongoose.connection.db
  });
}));