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模块,但是MongoStoreconfiguration是在express-session
variables上设置的。 但是,删除第一个原因导致应用程序无法正常工作(不会进行身份validation/redirect)。
那么,关于我的问题标题。 会话在哪里存储? 我真的以为我可以去我的Mongo数据库,并find任何存储它的集合 。
我如何在后端(Mongo)甚至Java应用程序中find这样的会话?
connect-mongo
默认 connect-mongo
存储在“会话”集合中 。 他们应该在那里,在蒙戈壳或像robomongo任何GUI工具可见。 是的,它是默认创build的。 我会通过mongooose_connection选项,而不是db
。
从文档:
mongoose_connection的forms是:someMongooseDb.connections [0]使用现有的mongoose连接。 (可选的)
你应该做的一件事是replace
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 }); }));