docs: function (error, result) {
      // If the login method returns its result but the connection is lost
      // before the data is in the local cache, it'll set an onReconnect (see
      // above). The onReconnect will try to log in using the token, and *it*
      // will call userCallback via its own version of this
      // loggedInAndDataReadyCallback. So we don't have to do anything here.
      if (reconnected)
        return;
  
      // Note that we need to call this even if _suppressLoggingIn is true,
      // because it could be matching a _setLoggingIn(true) from a
      // half-completed pre-reconnect login method.
      Accounts._setLoggingIn(false);
      if (error || !result) {
        error = error || new Error(
          "No result from call to " + options.methodName);
        onceUserCallback(error);
        return;
      }
      try {
        options.validateResult(result);
      } catch (e) {
        onceUserCallback(e);
        return;
      }
  
      // Make the client logged in. (The user data should already be loaded!)
      makeClientLoggedIn(result.id, result.token, result.tokenExpires);
      onceUserCallback();
    }