You've already forked matrix-react-sdk
mirror of
https://github.com/matrix-org/matrix-react-sdk.git
synced 2025-07-16 22:01:54 +03:00
Overwrite the old session if the new creds are for a different user
Fixes https://github.com/vector-im/riot-web/issues/10272
This commit is contained in:
@ -348,15 +348,26 @@ export function setLoggedIn(credentials) {
|
||||
* new one in its place. This additionally starts all other react-sdk services
|
||||
* which use the new Matrix client.
|
||||
*
|
||||
* If the credentials belong to a different user from the session already stored,
|
||||
* the old session will be cleared automatically.
|
||||
*
|
||||
* @param {MatrixClientCreds} credentials The credentials to use
|
||||
*
|
||||
* @returns {Promise} promise which resolves to the new MatrixClient once it has been started
|
||||
*/
|
||||
export function hydrateSession(credentials) {
|
||||
stopMatrixClient();
|
||||
const oldUserId = MatrixClientPeg.get().getUserId();
|
||||
|
||||
stopMatrixClient(); // unsets MatrixClientPeg.get()
|
||||
localStorage.removeItem("mx_soft_logout");
|
||||
_isLoggingOut = false;
|
||||
return _doSetLoggedIn(credentials, false);
|
||||
|
||||
const overwrite = credentials.userId !== oldUserId;
|
||||
if (overwrite) {
|
||||
console.warn("Rehydrating the user's session with a different user's - clearing all data");
|
||||
}
|
||||
|
||||
return _doSetLoggedIn(credentials, overwrite);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user