From 4abcfed97778ddb619df65fec0b1c3d0dc4debac Mon Sep 17 00:00:00 2001 From: Edgard Date: Tue, 31 May 2022 23:47:22 -0300 Subject: [PATCH] fix: Clear all token data when disconnected (fix #1147) --- src/api/whatsapp.ts | 25 +++++++++++++++++++++++++ src/controllers/auth.ts | 9 +++++++++ 2 files changed, 34 insertions(+) diff --git a/src/api/whatsapp.ts b/src/api/whatsapp.ts index 07f775407..cba38a4e8 100644 --- a/src/api/whatsapp.ts +++ b/src/api/whatsapp.ts @@ -89,6 +89,31 @@ export class Whatsapp extends BusinessLayer { if (connected) { await page.evaluate(() => localStorage.clear()); + await page.evaluate(() => { + const promises = []; + window.indexedDB + .databases() + .then((dbs) => { + dbs.forEach((db) => { + promises.push( + new Promise((resolve) => { + const r = window.indexedDB.deleteDatabase(db.name); + r.onerror = r.onblocked = function () { + this.result.close(); + window.indexedDB.deleteDatabase(db.name); + resolve(); + }; + r.onsuccess = function () { + resolve(); + }; + }) + ); + }); + }) + .catch(() => null); + + return Promise.all(promises); + }); await page.reload(); } diff --git a/src/controllers/auth.ts b/src/controllers/auth.ts index ac5901fa3..96324707a 100644 --- a/src/controllers/auth.ts +++ b/src/controllers/auth.ts @@ -180,6 +180,15 @@ export async function injectSessionToken( if (clear) { await page.evaluate((session) => { localStorage.clear(); + + window.indexedDB + .databases() + .then((dbs) => { + dbs.forEach((db) => { + window.indexedDB.deleteDatabase(db.name); + }); + }) + .catch(() => null); }); } await page.evaluate((session) => {