1export class AuthService {
2 private apiUrl = environment.apiUrl;
3 public loggedIn$ = new ReplaySubject<boolean>();
4 public authenticatedUser$ = new ReplaySubject<JwtUserModel>();
5 public ready = false;
6
7 constructor(
8 private httpClient: HttpClient,
9 private route: ActivatedRoute,
10 private router: Router,
11 private jwtHelperService: JwtHelperService) {
12
13 this.router.events
14 .subscribe((event) => {
15 if (!this.ready && event && event instanceof ActivationStart) {
16 this.ready = true;
17 console.log('router events finished');
18 const token = event.snapshot.queryParams.token || localStorage.getItem('access_token');
19 this.loginFlow(token);
20 }
21 });
22 }
23
24
25 loginFlow(token: string) {
26 if (token) {
27 this.loginWithApi(token)
28 .pipe(first())
29 .subscribe(
30 (result) => {
31 if (result.status === 'OK') {
32 this.setLoggedIn(token);
33 } else {
34 this.logout();
35 }
36 },
37 (err: any) => {
38 this.logout();
39 }
40 );
41 } else {
42 this.logout();
43 }
44 }Created on 7/11/2019