diff --git a/tracker/tracker/src/main/app/index.ts b/tracker/tracker/src/main/app/index.ts index 932c906a3..d621852c9 100644 --- a/tracker/tracker/src/main/app/index.ts +++ b/tracker/tracker/src/main/app/index.ts @@ -389,6 +389,7 @@ export default class App { const sReset = this.sessionStorage.getItem(this.options.session_reset_key) this.sessionStorage.removeItem(this.options.session_reset_key) + const shouldReset = startOpts.forceNew || sReset !== null return window .fetch(this.options.ingestPoint + '/v1/web/start', { @@ -400,10 +401,9 @@ export default class App { ...this.getTrackerInfo(), timestamp, userID: this.session.getInfo().userID, - token: this.session.getSessionToken(), + token: shouldReset ? undefined : this.session.getSessionToken(), deviceMemory, jsHeapSizeLimit, - reset: startOpts.forceNew || sReset !== null, }), }) .then((r) => { @@ -443,9 +443,12 @@ export default class App { ) { return Promise.reject(`Incorrect server response: ${JSON.stringify(r)}`) } + if (sessionID !== this.session.getInfo().sessionID) { + this.session.reset() + } this.session.setSessionToken(token) - this.localStorage.setItem(this.options.local_uuid_key, userUUID) this.session.update({ sessionID, timestamp: startTimestamp || timestamp, projectID }) // TODO: no no-explicit 'any' + this.localStorage.setItem(this.options.local_uuid_key, userUUID) const startWorkerMsg: WorkerMessageData = { type: 'auth', diff --git a/tracker/tracker/src/main/app/session.ts b/tracker/tracker/src/main/app/session.ts index e98d55da7..5c3db5ac5 100644 --- a/tracker/tracker/src/main/app/session.ts +++ b/tracker/tracker/src/main/app/session.ts @@ -97,7 +97,7 @@ export default class Session { let token = hash let pageNoStr = '100500' // back-compat for sessionToken if (hashParts.length == 2) { - ;[token, pageNoStr] = hashParts + ;[pageNoStr, token] = hashParts } if (!pageNoStr || !token) { return diff --git a/tracker/tracker/src/main/index.ts b/tracker/tracker/src/main/index.ts index ff8d27b4c..9af8dd72b 100644 --- a/tracker/tracker/src/main/index.ts +++ b/tracker/tracker/src/main/index.ts @@ -187,9 +187,7 @@ export default class API { return } this.app.stop() - const sessionHash = this.app.session.getSessionHash() - this.app.session.reset() - return sessionHash + return this.app.session.getSessionHash() } getSessionToken(): string | null | undefined {