实际如何保存connect-mongo MongoStore会话? [英] How are connect-mongo MongoStore sessions actually saved?

查看:106
本文介绍了实际如何保存connect-mongo MongoStore会话?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

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 connect模块,但是MongoStore配置是在express-session变量上设置的.但是,首先删除会导致应用无法正常运行(不会进行身份验证/重定向).

那么,关于我的问题标题. 该会话存储在哪里?我真的以为我可以去我的Mongo数据库并找到任何将其存储的集合.

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

解决方案

connect-mongo将会话存储在.它们应该在那里并在mongo shell或任何GUI工具(如robomongo)中可见.是的,它是默认创建的.我会传入 mongooose_connection选项而不是db

从文档中

mongoose_connection的格式为:someMongooseDb.connections [0]以使用现有的猫鼬连接. (可选)

I implemented sessions using Passport, but for storing sessions I tried connect-mongo using a mongoose connection.

This is my code (sessions part):

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
    })
  }));

Something I doubt if it would be counterproductive is that app.use(connect.session({ secret: 'ilovescotchscotchyscotchscotch' })) is usingconnect module but the MongoStore configuration is set upon a express-session variable. However, deleting first causes app to not work good (won't authenticate/redirect).

So, about my question title. Where is that session stored? I really thought I could go to my Mongo database and find any collection storing it.

How can I find such sessions at backend (Mongo) and even at the applicacion as Java Script objects?

解决方案

connect-mongo stores sessions in the "sessions" collection by default. They should be there and visible in the mongo shell or any GUI tool like robomongo. Yes, it is created by default. I would pass in the mongooose_connection option instead of db.

From the docs:

mongoose_connection in the form: someMongooseDb.connections[0] to use an existing mongoose connection. (optional)

这篇关于实际如何保存connect-mongo MongoStore会话?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆