Мангуст + Everyauth странное поведение - PullRequest
2 голосов
/ 24 августа 2011

Используя Everyauth, когда я вхожу в систему с никогда ранее не прошедшим аутентификацию пользователем на моем сайте, запускается следующий код.Проверяет, есть ли пользователь в моем mongodb, если нет, то пишет.Сейчас проблема в том, что это работает для первого аутентифицированного пользователя, затем, если второй пользователь входит в систему, мои параметры joiningUser._id правильно инициированы, но все остальные параметры моей схемы от первого когда-либо сохраненного пользователя, как мои параметрыникогда не инициализируется повторно ... странно, мой console.log показывает правильные новые параметры, а не то, что фактически записано в базе данных.Моя аутентификация выполняется через модуль 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);
        } 
      });
    }
  });
};

Ответы [ 2 ]

3 голосов
/ 24 августа 2011

Использование mongoose-auth . Он позаботится о сочетании мангуста и Everyauth для вас.

1 голос
/ 24 сентября 2011

Кажется, есть проблема с назначением _id с принудительным значением. Поэтому я создал еще один идентификатор для идентификатора конкретного профиля (например: facebookId).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...