diff --git a/packages/accounts-base/accounts_client.js b/packages/accounts-base/accounts_client.js index 1b87252ccc..e60c417bf4 100644 --- a/packages/accounts-base/accounts_client.js +++ b/packages/accounts-base/accounts_client.js @@ -112,6 +112,13 @@ Accounts.callLoginMethod = function (options) { }}); } }; + + Meteor.connection._onDisconnect = function (reason) { + var loggedOutReasons = ["logged_out", "token_expired", + "user_deleted", "token_deleted"]; + if (_.indexOf(loggedOutReasons, reason) !== -1) + makeClientLoggedOut(); + }; } }; @@ -162,6 +169,7 @@ makeClientLoggedOut = function() { unstoreLoginToken(); Meteor.connection.setUserId(null); Meteor.connection.onReconnect = null; + Meteor.connection._onDisconnect = null; }; makeClientLoggedIn = function(userId, token, tokenExpires) { @@ -189,7 +197,6 @@ Meteor._logoutAllOthers = function (opts, callback) { } Meteor.apply('_logoutAllOthers', [opts], { wait: true }, function (error, result) { - console.log("logged out others"); if (error) { callback && callback(error); } else { diff --git a/packages/livedata/livedata_connection.js b/packages/livedata/livedata_connection.js index 68ea20ced0..aac5b8e3d9 100644 --- a/packages/livedata/livedata_connection.js +++ b/packages/livedata/livedata_connection.js @@ -1324,10 +1324,7 @@ _.extend(Connection.prototype, { _livedata_disconnected: function (msg) { var self = this; var reason = msg.reason; - if (reason === "logged_out" || reason === "token_expired") { - self.setUserId(null); - self.onReconnect = null; - } + self._onDisconnect && self._onDisconnect(reason); }, _livedata_error: function (msg) {