지금 mongoose-auth의 Facebook Connect를 사용하고 있습니다. 모든 것이 잘 작동하고 사용자는 mongodb 서버를 통해 작성/로그인됩니다.Mongoose-auth를 사용하는 사람이 있습니까? findOrCreateUsers를 어떻게 오버 라이드합니까?
그러나 새 사용자에게 가입시 임의의 "코드"를 할당하고 db.users 프로필에 넣기 때문에 findOrCreateUsers를 오버라이드하고 싶습니다.
그래서 mongoose-auth/lib/facebook
을 조사한 결과 3 개의 facebook 모듈 파일을 내 디렉토리 [everyauth.js, index.js, schema.js]에 복사했습니다. 간단한 테스트를 실행하기 위해 필자는 기본적으로 필자의 모든 autauth.js를 내 디렉토리에 포함 시켰고, 기본이 아닌 findOrCreateUsers 메소드를 사용했습니다.
작동하지만 오류가 하나 있습니다. 로그인/사용자 생성 후 req.user
은 정의되지 않습니다. (req.loggedIn
가 참, 예!)
나는 이것이 새로운 라이브러리라는 것을 알고 있지만, 그것을 사용했다면 (또는 Node.js에 대해 많이 알고 있다면) 도움을 주시면 감사하겠습니다. 나는 irc.freenode.net의 # node.js에 있습니다. 닉네임은 "xeodox"입니다. 네가 나를 도울 수 있다면 정말 고마워 !!
나는 나의 app.js에 페이스 북의 모듈에이 작업을 수행하여 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;
}