DDPClient.prototype._login = function(loginParams, password, callback) {
  var self = this;

  var srp = new SRP.Client(password);  //put your password in here
  var initialRequest = srp.startExchange();
  initialRequest.user = loginParams;

  self.call('beginPasswordExchange', [initialRequest], function(err, result) {
    if(err) {
        callback(err);
        return;
    }
    
    var response = srp.respondToChallenge(result);
  
    self.call('login', [{ srp : response }], function (err, result) {

      if(err) {
        callback(err);
        return;
      }

      var conf = srp.verifyConfirmation({ HAMK : result.HAMK });

      if (conf) {
        callback(null, result);
      } else {
        callback({ error : "The HAMK doesn't match. Possible MITM attack" });
      }

    });
  });
};
  self.call('beginPasswordExchange', [initialRequest], function(err, result) {
    if(err) {
        callback(err);
        return;
    }
    
    var response = srp.respondToChallenge(result);
  
    self.call('login', [{ srp : response }], function (err, result) {

      if(err) {
        callback(err);
        return;
      }

      var conf = srp.verifyConfirmation({ HAMK : result.HAMK });

      if (conf) {
        callback(null, result);
      } else {
        callback({ error : "The HAMK doesn't match. Possible MITM attack" });
      }

    });
  });
    self.call('login', [{ srp : response }], function (err, result) {

      if(err) {
        callback(err);
        return;
      }

      var conf = srp.verifyConfirmation({ HAMK : result.HAMK });

      if (conf) {
        callback(null, result);
      } else {
        callback({ error : "The HAMK doesn't match. Possible MITM attack" });
      }

    });