有没有人用过Mongoose-auth? 你如何搭配findOrCreateUsers?

现在我正在使用mongoose-auth的Facebook连接。 一切工作正常,用户正在通过我的mongodb服务器创build/login。

但是,我想重载findOrCreateUsers,因为我想在注册时为每个新用户分配一个随机“代码”,并将其放入其db.usersconfiguration文件中。

所以我看着mongoose-auth/lib/facebook ,并将这3个facebook模块文件复制到我自己的目录[everyauth.js,index.js,schema.js]。 为了运行一个简单的testing,我基本上包括了自己的目录下的everyauth.js,并且使用它的findOrCreateUsers方法而不是默认的方法。

它工作,但有一个错误。 login/创build用户后, req.user是未定义的。 ( req.loggedIn显示真的,耶!

我知道这是一个新的库,但是如果你已经使用了它(或者对Node.js了解很多),如果你能帮助我,我将不胜感激。 我在irc.freenode.net上的#node.js上。 昵称是“ xeodox ”。 如果你能帮助我,我会很感激!

我通过对我的app.js中的facebook模块进行覆盖findOrCreateUser:

  findOrCreateUser: function (sess, accessTok, accessTokExtra, fbUser) { var promise = new Promise() , self = this; // TODO Check user in session or request helper first // eg, req.user or sess.auth.userId this.User()().findOne({'fb.id': fbUser.id}, function (err, foundUser) { if (foundUser) return promise.fulfill(foundUser); self.User()().createWithFB(fbUser, accessTok, accessTokExtra.expires, function (err, createdUser) { return promise.fulfill(createdUser); }); }); return promise; } 

不需要将这些文件复制到您自己的目录中。 只需在你的mongoose-authconfiguration中进行以下操作:

 facebook: { everyauth: { myHostname: 'http://localhost:3000' , appId: 'YOUR APP ID HERE' , appSecret: 'YOUR APP SECRET HERE' , redirectPath: '/home' , findOrCreateUser: function (session, accessToken, fbUserMetadata) { } } } 

要获得关于未定义req.user帮助,请在github上提供一个链接到自包含要点的问题以重新创build问题,我可以帮助您解决。