diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js index 7f40113f..1f0af15a 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js @@ -2,7 +2,9 @@ headers = `200 OK Content-Type: text/html`; if (!ssid_sessions[socket.ssid].getSessionData("registered")) { - var redirect = [10, "client:goback?"]; + headers += "\nwtv-noback-all: wtv-"; + headers += "\nwtv-expire-all: wtv-"; + var redirect = [5, "client:relogin?"]; var message = "Error: Your box is not registered. You are accessing " + minisrv_config.config.service_name + " in Guest Mode. There is nothing to delete!"; } else if (request_headers.query.confirm_unregister) { if (ssid_sessions[socket.ssid].unregisterBox()) { @@ -14,7 +16,7 @@ if (!ssid_sessions[socket.ssid].getSessionData("registered")) { } else { var redirect = [10, "client:goback?"]; var message = "There was an error deleting your account data. Please try again later. If the problem persists, please contact " + minisrv_config.config.service_owner + " to request manual deletion."; - message += "SSID verifcation may be required to perform a manual deletion.< br >
Returning from whence you came...

"; + message += "SSID verifcation may be required to perform a manual deletion.

Returning from whence you came...

"; message += `Click here if you are not automatically redirected.`; } } else { diff --git a/zefie_wtvp_minisrv/WTVClientSessionData.js b/zefie_wtvp_minisrv/WTVClientSessionData.js index 97c01819..1737eda2 100644 --- a/zefie_wtvp_minisrv/WTVClientSessionData.js +++ b/zefie_wtvp_minisrv/WTVClientSessionData.js @@ -295,12 +295,16 @@ class WTVClientSessionData { } unregisterBox() { + var user_store_base = this.wtvshared.makeSafePath(this.wtvshared.getAbsolutePath(this.minisrv_config.config.SessionStore), this.path.sep + this.ssid); try { - if (this.fs.lstatSync(this.minisrv_config.config.SessionStore + this.path.sep + this.ssid + ".json")) { - this.fs.unlinkSync(this.minisrv_config.config.SessionStore + this.path.sep + this.ssid + ".json"); + if (this.fs.existsSync(user_store_base + ".json")) { + this.fs.unlinkSync(user_store_base + ".json"); this.session_store = {}; - return true; } + if (this.fs.existsSync(user_store_base)) { + this.fs.rmdirSync(user_store_base, { recursive: true }); + } + return true; } catch (e) { // Don't log error 'file not found', it just means the client isn't registered yet console.error(" # Error deleting session data for", this.wtvshared.filterSSID(this.ssid), e);