Sign out when session is terminated from another application

This commit is contained in:
Alexander Zinchuk 2021-04-13 23:19:09 +03:00
parent 313eeb2743
commit 9b58fda0fd

View File

@ -97,6 +97,8 @@ export async function destroy() {
function handleGramJsUpdate(update: any) {
if (update instanceof connection.UpdateConnectionState) {
isConnected = update.state === connection.UpdateConnectionState.connected;
} else if (update instanceof GramJs.UpdatesTooLong) {
void handleTerminatedSession();
}
}
@ -231,3 +233,18 @@ function injectUpdateEntities(result: GramJs.Updates | GramJs.UpdatesCombined) {
}
});
}
async function handleTerminatedSession() {
try {
await invokeRequest(new GramJs.users.GetFullUser({
id: new GramJs.InputUserSelf(),
}), undefined, true);
} catch (err) {
if (err.message === 'AUTH_KEY_UNREGISTERED') {
onUpdate({
'@type': 'updateConnectionState',
connectionState: 'connectionStateBroken',
});
}
}
}