我使用 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对象的应用程序中找到此类会话?
答案 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
});
}));