diff --git a/ui/hv2-ui/src/app/token.service.ts b/ui/hv2-ui/src/app/token.service.ts index 06b81cb..5a02acc 100644 --- a/ui/hv2-ui/src/app/token.service.ts +++ b/ui/hv2-ui/src/app/token.service.ts @@ -1,10 +1,10 @@ import { Injectable } from '@angular/core'; import { MessageService } from './message.service'; -import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { HttpClient } from '@angular/common/http'; import { UserCreds } from './userCreds' import jwt_decode from 'jwt-decode' import { Observable, interval, Subject, Subscription } from 'rxjs' -import { map, takeUntil, takeWhile } from 'rxjs/operators' +import { map, takeWhile } from 'rxjs/operators' import { authserviceBaseUrl } from './config' @@ -22,6 +22,7 @@ export class TokenService { public static Id_RefreshToken_Key : string = "id_refreshtoken"; private _expiryTime = new Subject() + private subscription: Subscription constructor(private http: HttpClient, private messageService: MessageService) { } @@ -56,7 +57,10 @@ export class TokenService { let exp = jwt_decode(token)["exp"] let iat = jwt_decode(token)["iat"] let start = exp - iat - interval(1000).pipe(map(v => start - v)).pipe(takeWhile(v => v != 0)).subscribe(v => this._expiryTime.next(v)) + if (this.subscription && !this.subscription.closed) { + this.subscription.unsubscribe() + } + this.subscription = interval(1000).pipe(map(v => start - v)).pipe(takeWhile(v => v != 0)).subscribe(v => this._expiryTime.next(v)) } async login(login: string, password: string) : Promise {