[auth] properly refresh user when auth
object changes
This commit is contained in:
parent
dfbec0ceef
commit
e6266ecedc
@ -1,3 +1,4 @@
|
||||
import { Router, NavigationStart } from '@angular/router';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { HttpClient, HttpParams } from '@angular/common/http';
|
||||
import { StateService } from './state.service';
|
||||
@ -30,16 +31,20 @@ const SERVICES_API_PREFIX = `/api/v1/services`;
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class ServicesApiServices {
|
||||
private apiBaseUrl: string; // base URL is protocol, hostname, and port
|
||||
private apiBasePath: string; // network path is /testnet, etc. or '' for mainnet
|
||||
apiBaseUrl: string; // base URL is protocol, hostname, and port
|
||||
apiBasePath: string; // network path is /testnet, etc. or '' for mainnet
|
||||
|
||||
userSubject$ = new ReplaySubject<IUser | null>(1);
|
||||
currentAuth = null;
|
||||
|
||||
constructor(
|
||||
private httpClient: HttpClient,
|
||||
private stateService: StateService,
|
||||
private storageService: StorageService
|
||||
private storageService: StorageService,
|
||||
private router: Router,
|
||||
) {
|
||||
this.currentAuth = localStorage.getItem('auth');
|
||||
|
||||
this.apiBaseUrl = ''; // use relative URL by default
|
||||
if (!stateService.isBrowser) { // except when inside AU SSR process
|
||||
this.apiBaseUrl = this.stateService.env.NGINX_PROTOCOL + '://' + this.stateService.env.NGINX_HOSTNAME + ':' + this.stateService.env.NGINX_PORT;
|
||||
@ -59,6 +64,15 @@ export class ServicesApiServices {
|
||||
}
|
||||
|
||||
this.getUserInfo$().subscribe();
|
||||
console.log('refresh user');
|
||||
this.router.events.subscribe((event) => {
|
||||
if (event instanceof NavigationStart) {
|
||||
if (this.currentAuth !== localStorage.getItem('auth')) {
|
||||
console.log('refresh user');
|
||||
this.getUserInfo$().subscribe();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user