내 웹 사이트에서 사용자 이전에 절대 권한을 부여하지 않고 로그인 할 때 모든 인증을 사용하면 다음 코드가 실행됩니다. 사용자가 이미 내 mongodb에 있는지 여부를 확인합니다. 이제 문제는 첫 번째 인증 된 사용자에 대한 작업입니다. 두 번째 사용자가 로그인하면 joinedUser._id 매개 변수가 올바르게 시작되지만 내 스키마의 다른 모든 매개 변수는 처음 저장된 사용자의 것이며 내 매개 변수와 같습니다. 다시 초기화하지 마십시오 ... 이상하게도, 내 console.log는 데이터베이스에 실제로 쓰여지는 것이 아니라 올바른 새로운 매개 변수를 보여줍니다. 내 인증은 everyauth 모듈을 통해 이루어지며, 나는 익스프레스 프레임 워크를 사용한다.몽구스 + Everyauth 이상한 행동
exports.findOrCreateFacebookUser = function(fbUserData, promise){
User.findOne({_id:fbUserData.id}, function(err, user) {
if(err) {
console.log("Error in finding user for auth. Check Db");
promise.fail(err);
return;
}
else if(user){
console.log("User found ");
promise.fulfill(user);
}
else{
var joiningUser = new User();
joiningUser._id = fbUserData.id;
joiningUser.firstName = fbUserData.first_name;
joiningUser.lastName = fbUserData.last_name;
joiningUser.email = fbUserData.email;
//console.log(JSON.stringify(joiningUser));
joiningUser.save(function(err){
if(err){
console.log("Couldnt save new user: " + err);
promise.fail(err);
return;
}
else{
console.log("User wasnt existant, it is now created: " + JSON.stringify(joiningUser));
promise.fulfill(joiningUser);
}
});
}
});
};
사용을 계획하고 있지만 여전히 내 코드가 작동하지 않는 이유를 알고 싶습니다. 거의 버그처럼 들립니다. 올바른 ID를 저장하지만 다른 모든 매개 변수는 (first_name ... 등) 이전에 입력 한 객체의 값을 저장합니다 ... 왜? 나는 무엇을 보지 못하니? – guiomie