From 8ebc03706a9bd3272d45e043ff8bd0a3c1c0a73d Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Mon, 8 Jul 2019 15:35:34 -0600 Subject: [PATCH] Also clear data when the deviceId doesn't match When the HS implementation doesn't respect the device_id parameter erroneously --- src/Lifecycle.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Lifecycle.js b/src/Lifecycle.js index 140dffeb9f..fe7348e9c6 100644 --- a/src/Lifecycle.js +++ b/src/Lifecycle.js @@ -357,14 +357,15 @@ export function setLoggedIn(credentials) { */ export function hydrateSession(credentials) { const oldUserId = MatrixClientPeg.get().getUserId(); + const oldDeviceId = MatrixClientPeg.get().getDeviceId(); stopMatrixClient(); // unsets MatrixClientPeg.get() localStorage.removeItem("mx_soft_logout"); _isLoggingOut = false; - const overwrite = credentials.userId !== oldUserId; + const overwrite = credentials.userId !== oldUserId || credentials.deviceId !== oldDeviceId; if (overwrite) { - console.warn("Rehydrating the user's session with a different user's - clearing all data"); + console.warn("Clearing all data: Old session belongs to a different user/device"); } return _doSetLoggedIn(credentials, overwrite);