現在、mongoose-auth の Facebook Connect を使用しています。すべてが正常に機能し、mongodb サーバーを介してユーザーが作成/ログインされています。
ただし、サインアップ時に新しいユーザーごとにランダムな「コード」を割り当て、それを db.users プロファイル内に配置したいため、findOrCreateUsers をオーバーライドしたいと考えています。
そこで を調べて、mongoose-auth/lib/facebook
これら 3 つの facebook モジュール ファイルを自分のディレクトリ [everyauth.js、index.js、schema.js] にコピーしました。簡単なテストを実行するために、基本的に自分のディレクトリから独自の everyauth.js を含め、デフォルトの代わりにその findOrCreateUsers メソッドを使用しました。
動作しますが、エラーが 1 つあります。ログイン/ユーザー作成後req.user
は未定義です。( req.loggedIn
True, yay! を示します)
これが新しいライブラリであることは承知していますが、使用したことがある (または Node.js についてよく知っている) 場合は、助けていただければ幸いです。私は irc.freenode.net の #node.js を使用しています。愛称は「ゼオドックス」。あなたが私を助けることができれば、私は本当に感謝します!!
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
// e.g., 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;
}