我在ym app中有一个mongoose和connect-mongo模块实例。我使用connect-mongo模块将会话存储保存在mongodb数据库(mongohq)而不是内存存储中。
每次我尝试在服务器启动时访问我的应用程序(facebook auth with everyauth)我得到以下内容:
500 MongoError:错误:未经授权的db:express-sessions锁类型:-1 客户端:199.192.242.4
我的用户名,密码都不错。
var conf = {
db: {
db: 'express-sessions',
host: 'staff.mongohq.com',
port: 10072, // optional, default: 27017
username: 'admin', // optional
password: 'admin', // optional
collection: 'facebookSessions' // optional, default: sessions
},
secret: '076ee61d63aa10a125ea872411e433b9'
};
app.use(express.session({
secret: conf.secret,
maxAge: new Date(Date.now() + 3600000),
store: new MongoStore(conf.db)
}));
编辑,这似乎与我的mongohq有关。我修改了旧版本的集合,它可以工作。
答案 0 :(得分:3)
我使用Heroku和Mongolab时遇到了类似的错误。
我通过使用mongolab web admin手动创建一个新的数据库用户来解决它。
答案 1 :(得分:0)
听起来db是以-auth启动的,但用户尚未被授予访问db的权限。
http://www.mongodb.org/display/DOCS/Security+and+Authentication