Index: src/Clients/Angular/finki-chattery/src/app/app-routing.module.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/app-routing.module.ts	(revision 466d1ac64f99c25e8b27cfba50cd766685313bb3)
+++ src/Clients/Angular/finki-chattery/src/app/app-routing.module.ts	(revision 8b6791fbd76406e78daafeef77de70d20eec9fa6)
@@ -1,12 +1,7 @@
 import { NgModule } from '@angular/core';
 import { Routes, RouterModule } from '@angular/router';
-import { AuthCallbackComponent } from './auth-callback/auth-callback.component';
 import { AuthorizedGuard } from './core/guards/authorized.guard';
 
 const routes: Routes = [
-  {
-    path: 'auth-callback',
-    component: AuthCallbackComponent
-  },
   {
     path: 'questioning',
Index: src/Clients/Angular/finki-chattery/src/app/app.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/app.component.ts	(revision 466d1ac64f99c25e8b27cfba50cd766685313bb3)
+++ src/Clients/Angular/finki-chattery/src/app/app.component.ts	(revision 8b6791fbd76406e78daafeef77de70d20eec9fa6)
@@ -1,4 +1,4 @@
 import { Component, OnInit } from '@angular/core';
-import { LoaderService } from './core/services';
+import { LoaderService, RedirectService } from './core/services';
 
 @Component({
@@ -8,6 +8,8 @@
 })
 export class AppComponent implements OnInit {
-  constructor(public loader: LoaderService) {}
+  constructor(public loader: LoaderService, private redirect: RedirectService) {}
 
-  ngOnInit(): void {}
+  ngOnInit(): void {
+    this.redirect.redirectLoggedInUser();
+  }
 }
Index: src/Clients/Angular/finki-chattery/src/app/app.module.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/app.module.ts	(revision 466d1ac64f99c25e8b27cfba50cd766685313bb3)
+++ src/Clients/Angular/finki-chattery/src/app/app.module.ts	(revision 8b6791fbd76406e78daafeef77de70d20eec9fa6)
@@ -10,8 +10,7 @@
 import { CoreModule } from './core/core.module';
 import { translateConfiguration, TranslateFromJsonService } from './shared-app/services';
-import { AuthCallbackComponent } from './auth-callback/auth-callback.component';
 
 @NgModule({
-  declarations: [AppComponent, AuthCallbackComponent],
+  declarations: [AppComponent],
   imports: [
     BrowserModule,
Index: c/Clients/Angular/finki-chattery/src/app/auth-callback/auth-callback.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/auth-callback/auth-callback.component.ts	(revision 466d1ac64f99c25e8b27cfba50cd766685313bb3)
+++ 	(revision )
@@ -1,15 +1,0 @@
-import { Component, OnInit } from '@angular/core';
-import { AuthService, RedirectService } from '../core/services';
-
-@Component({
-  selector: 'app-auth-callback',
-  template: ''
-})
-export class AuthCallbackComponent implements OnInit {
-  constructor(private redirect: RedirectService, private auth: AuthService) {}
-
-  async ngOnInit(): Promise<void> {
-    await this.auth.completeAuthentication();
-    this.redirect.redirectLoggedInUser();
-  }
-}
Index: src/Clients/Angular/finki-chattery/src/app/core/guards/authorized.guard.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/guards/authorized.guard.ts	(revision 466d1ac64f99c25e8b27cfba50cd766685313bb3)
+++ src/Clients/Angular/finki-chattery/src/app/core/guards/authorized.guard.ts	(revision 8b6791fbd76406e78daafeef77de70d20eec9fa6)
@@ -1,5 +1,6 @@
 import { Injectable } from '@angular/core';
 import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
-
+import { Observable } from 'rxjs';
+import { map } from 'rxjs/operators';
 import { AuthService } from '../services';
 
@@ -10,11 +11,15 @@
   constructor(private auth: AuthService) {}
 
-  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
-    if (this.auth.isLoggedIn()) {
-      return true;
-    }
+  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {
+    return this.auth.isLoggedIn().pipe(
+      map((loggedIn) => {
+        if (!loggedIn) {
+          this.auth.login();
+          return false;
+        }
 
-    this.auth.login();
-    return false;
+        return true;
+      })
+    );
   }
 }
Index: src/Clients/Angular/finki-chattery/src/app/core/interceptors/token.interceptor.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/interceptors/token.interceptor.ts	(revision 466d1ac64f99c25e8b27cfba50cd766685313bb3)
+++ src/Clients/Angular/finki-chattery/src/app/core/interceptors/token.interceptor.ts	(revision 8b6791fbd76406e78daafeef77de70d20eec9fa6)
@@ -2,4 +2,5 @@
 import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';
 import { Observable } from 'rxjs';
+import { switchMap } from 'rxjs/operators';
 
 import { AuthService } from '../services';
@@ -15,9 +16,12 @@
     }
 
-    const requestToForward = request.clone({
-      setHeaders: { Authorization: `Bearer ${this.auth.currentUserToken()}` }
-    });
-
-    return next.handle(requestToForward);
+    return this.auth.currentUserToken().pipe(
+      switchMap((token) => {
+        const requestToForward = request.clone({
+          setHeaders: { Authorization: `Bearer ${token}` }
+        });
+        return next.handle(requestToForward);
+      })
+    );
   }
 }
Index: src/Clients/Angular/finki-chattery/src/app/core/services/auth.service.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/services/auth.service.ts	(revision 466d1ac64f99c25e8b27cfba50cd766685313bb3)
+++ src/Clients/Angular/finki-chattery/src/app/core/services/auth.service.ts	(revision 8b6791fbd76406e78daafeef77de70d20eec9fa6)
@@ -1,5 +1,6 @@
 import { Injectable } from '@angular/core';
-import { User, UserManager } from 'oidc-client';
-import { Observable, of } from 'rxjs';
+import { UserManager } from 'oidc-client';
+import { Observable, from, of } from 'rxjs';
+import { map, switchMap } from 'rxjs/operators';
 
 import { environment } from '@env/environment';
@@ -14,12 +15,9 @@
     authority: environment.identityRoute,
     client_id: environment.identityClientId,
-    redirect_uri: `${window.location.origin}/auth-callback`,
+    redirect_uri: `${window.location.origin}`,
     response_type: 'id_token token',
     scope: 'openid app.api.finki-chattery profile',
     post_logout_redirect_uri: window.location.origin
   });
-
-  public user: ApplicationUser | null = null;
-  public oidcUser: User | null = null;
 
   constructor(private baseApi: BaseApiService) {}
@@ -33,41 +31,63 @@
   }
 
-  public isLoggedIn(): boolean {
-    if (this.oidcUser) {
-      return !this.oidcUser.expired;
-    }
-    return false;
+  public isLoggedIn(): Observable<boolean> {
+    return from(this.userManager.getUser()).pipe(
+      map((user) => {
+        if (user) {
+          if (user.expired) {
+            return false;
+          }
+
+          return true;
+        }
+
+        return false;
+      })
+    );
   }
 
-  public currentUser(): ApplicationUser | null {
-    return this.user;
+  public currentUser(): Observable<ApplicationUser | null> {
+    return from(this.userManager.getUser()).pipe(
+      map((user) => {
+        if (!user) {
+          return null;
+        }
+
+        return new ApplicationUser(
+          user.profile.id,
+          user.profile.userType,
+          user.profile.emailAddress,
+          user.profile.username,
+          user.profile.isVerified
+        );
+      })
+    );
   }
 
-  public currentUserToken(): string {
-    if (this.oidcUser) {
-      return this.oidcUser.access_token;
-    }
+  public currentUserToken(): Observable<string> {
+    return from(this.userManager.getUser()).pipe(
+      map((user) => {
+        if (user?.access_token) {
+          return user.access_token;
+        }
 
-    return '';
+        return '';
+      })
+    );
   }
 
   public selfUserDto(): Observable<SelfUserResponse | null> {
-    if (this.isLoggedIn()) {
-      return this.baseApi.getSelfUser();
-    }
-    return of(null);
+    return this.isLoggedIn().pipe(
+      switchMap((loggedIn) => {
+        if (loggedIn) {
+          return this.baseApi.getSelfUser();
+        }
+        return of(null);
+      })
+    );
   }
 
-  public async completeAuthentication(): Promise<void> {
-    return await this.userManager.signinRedirectCallback().then((user: User) => {
-      this.oidcUser = user;
-      this.user = new ApplicationUser(
-        user.profile.id,
-        user.profile.userType,
-        user.profile.emailAddress,
-        user.profile.username,
-        user.profile.isVerified
-      );
-    });
+  public signupCallback(): Observable<boolean> {
+    return from(this.userManager.signinRedirectCallback()).pipe(map((user) => user !== null));
   }
 }
Index: src/Clients/Angular/finki-chattery/src/app/core/services/redirect.service.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/core/services/redirect.service.ts	(revision 466d1ac64f99c25e8b27cfba50cd766685313bb3)
+++ src/Clients/Angular/finki-chattery/src/app/core/services/redirect.service.ts	(revision 8b6791fbd76406e78daafeef77de70d20eec9fa6)
@@ -1,4 +1,5 @@
 import { Injectable } from '@angular/core';
 import { Router } from '@angular/router';
+import { switchMap } from 'rxjs/operators';
 
 import { ApplicationUserType } from 'src/app/shared-app/models';
@@ -12,15 +13,18 @@
 
   public redirectLoggedInUser(): void {
-    const currentUser = this.auth.user;
-
-    if (currentUser) {
-      switch (currentUser.userType) {
-        case ApplicationUserType.Student:
-          this.router.navigateByUrl(`questioning/preview`);
-          break;
-        case ApplicationUserType.Teacher:
-          break;
-      }
-    }
+    this.auth
+      .signupCallback()
+      .pipe(switchMap(() => this.auth.currentUser()))
+      .subscribe((currentUser) => {
+        if (currentUser) {
+          switch (currentUser.userType) {
+            case ApplicationUserType.Student:
+              this.router.navigateByUrl(`questioning/preview`);
+              break;
+            case ApplicationUserType.Teacher:
+              break;
+          }
+        }
+      });
   }
 }
Index: src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.html
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.html	(revision 466d1ac64f99c25e8b27cfba50cd766685313bb3)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.html	(revision 8b6791fbd76406e78daafeef77de70d20eec9fa6)
@@ -2,4 +2,4 @@
   <span>FinkiChattery</span>
   <span class="right"></span>
-  <app-button *ngIf="auth.isLoggedIn()" (action)="logout()" [buttonType]="ButtonType.CallToAction">Logout</app-button>
+  <app-button *ngIf="loggedIn" (action)="logout()" [buttonType]="ButtonType.CallToAction">Logout</app-button>
 </mat-toolbar>
Index: src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.ts
===================================================================
--- src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.ts	(revision 466d1ac64f99c25e8b27cfba50cd766685313bb3)
+++ src/Clients/Angular/finki-chattery/src/app/shared-app/components/generic/header/header.component.ts	(revision 8b6791fbd76406e78daafeef77de70d20eec9fa6)
@@ -10,8 +10,11 @@
 export class HeaderComponent implements OnInit {
   ButtonType = ButtonType;
+  loggedIn = false;
 
-  constructor(public auth: AuthService) {}
+  constructor(private auth: AuthService) {}
 
-  ngOnInit(): void {}
+  ngOnInit(): void {
+    this.auth.isLoggedIn().subscribe((loggedIn) => (this.loggedIn = loggedIn));
+  }
 
   logout(): void {
Index: src/FinkiChattery/FinkiChattery.Identity/appsettings.Development.json
===================================================================
--- src/FinkiChattery/FinkiChattery.Identity/appsettings.Development.json	(revision 466d1ac64f99c25e8b27cfba50cd766685313bb3)
+++ src/FinkiChattery/FinkiChattery.Identity/appsettings.Development.json	(revision 8b6791fbd76406e78daafeef77de70d20eec9fa6)
@@ -10,5 +10,5 @@
 				{
 					"allowedCorsOrigins": [ "http://localhost:4200" ],
-					"redirectUris": [ "http://localhost:4200/auth-callback" ],
+					"redirectUris": [ "http://localhost:4200" ],
 					"postLogoutRedirectUris": [ "http://localhost:4200" ]
 				}
