有没有人用过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问题,我可以帮助您解决。
- Express服务静态文件的基本authentication
- 通过令牌validation,然后通过会话,如果令牌失败,使用护照?
- 使用cookie进行节点用户authentication
- 我们如何在node.js中使用Firebase Auth创build用户?
- 找不到模块“encryption”
- firebase.auth()。createUserWithEmailAndPassword Undefined不是一个函数
- node.js connect-auth应用程序? 例子(用户注册/用户/会话pipe理)
- 用户在Firebase / Node.js中全局logging
- 如果Passport身份validation失败,如何在redirect时保留表单数据?