fix: #9507 session reroll causes socket.io to become confused (#9534)

* fix: #9507 session reroll causes socket.io to become confused

* fix: added return

* fix: simpler logic for error handling

* fix: overly sensitive catch
This commit is contained in:
Julian Lam
2021-05-10 11:22:37 -04:00
committed by GitHub
parent 6ef0c8e950
commit ec6d1e2321
4 changed files with 40 additions and 12 deletions

View File

@@ -181,9 +181,9 @@ app.cacheBuster = null;
app.alertError = function (message, timeout) {
message = (message && message.message) || message;
if (message === '[[error:invalid-session]]') {
app.handleInvalidSession();
app.logout(false);
if (message === '[[error:revalidate-failure]]') {
socket.disconnect();
app.reconnect();
return;
}
@@ -197,14 +197,27 @@ app.cacheBuster = null;
};
app.handleInvalidSession = function () {
socket.disconnect();
app.logout(false);
bootbox.alert({
title: '[[error:invalid-session]]',
message: '[[error:invalid-session-text]]',
closeButton: false,
callback: function () {
window.location.reload();
},
});
};
app.handleSessionMismatch = () => {
if (app.flags._login || app.flags._logout) {
return;
}
socket.disconnect();
bootbox.alert({
title: '[[error:invalid-session]]',
message: '[[error:invalid-session-text]]',
title: '[[error:session-mismatch]]',
message: '[[error:session-mismatch-text]]',
closeButton: false,
callback: function () {
window.location.reload();