2012-05-09 47 views
2

我在ym应用程序中有一个mongoose和connect-mongo模块实例。我正在使用connect-mongo模块将会话存储保存在mongodb数据库(mongohq)中而不是内存存储中。不能使用基于mongo的会话存储

每次我尝试访问我的应用程序在服务器启动(everyauth Facebook的身份验证),我得到如下:

500 MongoError: Error: unauthorized db:express-sessions lock type:-1 client: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问题。我修改了一个较旧的集合,它的工作原理。

回答

3

我正面临使用的Heroku和Mongolab类似的错误。

我用mongolab web admin手动创建一个新的数据库用户来解决它。

+0

我实际上做了这个工作。 – guiomie

+1

澄清:我向数据库中添加了用户,而不是我的mongoHQ帐户的新用户来解决此问题。 –

0

听起来好像db是以--auth开头的,但用户还没有被授权访问db。

http://www.mongodb.org/display/DOCS/Security+and+Authentication

+0

嗨,它说:“你必须已经添加一个用户到管理数据库之前启动服务器身份验证,或从本地主机接口添加第一个用户(您不能添加第一个用户从本地连接尊重蒙古)“。 ...我怎样才能用mongohq做到这一点? – guiomie

相关问题