2

我在 ym 应用程序中有一个 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 的问题。我为较旧的集合修改了该集合,并且可以正常工作。

4

2 回答 2

3

我在使用 Heroku 和 Mongolab 时遇到了类似的错误。

我通过使用 mongolab 网络管理员手动创建一个新的数据库用户来解决它。

于 2012-06-25T23:17:04.507 回答
0

听起来数据库是用 --auth 启动的,但用户没有被授予访问数据库的权限。

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

于 2012-05-09T21:53:51.020 回答