diff --git a/extensions/microsoft-authentication/src/AADHelper.ts b/extensions/microsoft-authentication/src/AADHelper.ts index 40b0f925446..2414055c282 100644 --- a/extensions/microsoft-authentication/src/AADHelper.ts +++ b/extensions/microsoft-authentication/src/AADHelper.ts @@ -657,7 +657,8 @@ export class AzureActiveDirectoryService { this._refreshTimeouts.set(sessionId, setTimeout(async () => { try { - await this.refreshToken(refreshToken, scope, sessionId); + const refreshedToken = await this.refreshToken(refreshToken, scope, sessionId); + onDidChangeSessions.fire({ added: [], removed: [], changed: [this.convertToSessionSync(refreshedToken)] }); } catch (e) { this.pollForReconnect(sessionId, refreshToken, scope); } @@ -671,21 +672,14 @@ export class AzureActiveDirectoryService { return resolve(false); } - if (attempts === 1) { - const token = this._tokens.find(token => token.sessionId === sessionId); - if (token) { - token.accessToken = undefined; - onDidChangeSessions.fire({ added: [], removed: [], changed: [this.convertToSessionSync(token)] }); - } - } - const delayBeforeRetry = 5 * attempts * attempts; this.clearSessionTimeout(sessionId); this._refreshTimeouts.set(sessionId, setTimeout(async () => { try { - await this.refreshToken(refreshToken, scope, sessionId); + const refreshedToken = await this.refreshToken(refreshToken, scope, sessionId); + onDidChangeSessions.fire({ added: [], removed: [], changed: [this.convertToSessionSync(refreshedToken)] }); return resolve(true); } catch (e) { return resolve(await this.handleRefreshNetworkError(sessionId, refreshToken, scope, attempts + 1));