Refresh auth tokens when server returns 401, fixes #89629

This commit is contained in:
Rachel Macfarlane
2020-02-18 10:46:35 -08:00
parent 2158e77627
commit df3ae4adef
7 changed files with 44 additions and 1 deletions

View File

@@ -18,11 +18,15 @@ export class UserDataAuthTokenService extends Disposable implements IUserDataAut
private _onDidChangeToken: Emitter<string | undefined> = this._register(new Emitter<string | undefined>());
readonly onDidChangeToken: Event<string | undefined> = this._onDidChangeToken.event;
private _onTokenFailed: Emitter<void> = this._register(new Emitter<void>());
readonly onTokenFailed: Event<void> = this._onTokenFailed.event;
constructor(
@ISharedProcessService sharedProcessService: ISharedProcessService,
) {
super();
this.channel = sharedProcessService.getChannel('authToken');
this._register(this.channel.listen<void[]>('onTokenFailed')(_ => this.sendTokenFailed()));
}
getToken(): Promise<string | undefined> {
@@ -32,6 +36,10 @@ export class UserDataAuthTokenService extends Disposable implements IUserDataAut
setToken(token: string | undefined): Promise<undefined> {
return this.channel.call('setToken', token);
}
sendTokenFailed(): void {
this._onTokenFailed.fire();
}
}
registerSingleton(IUserDataAuthTokenService, UserDataAuthTokenService);