Skip to content

Commit dd7db72

Browse files
committed
IOT-43: Update logout button
1 parent e409e60 commit dd7db72

File tree

4 files changed

+43
-11
lines changed

4 files changed

+43
-11
lines changed

src/app/auth/auth.component.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export class AuthComponent implements OnInit {
1717
public formFailedSubmit = false;
1818
isLoginMode = true;
1919
isLoading = false;
20+
isKombit = false;
2021
error: string = null;
2122

2223
constructor(

src/app/auth/auth.service.ts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ export class AuthService {
2626
private baseUrl = environment.baseUrl;
2727
private URL = 'auth/login';
2828

29+
private readonly LOCAL_STORAGE_JWT_LOCATION = 'id_token';
30+
2931
constructor(private http: HttpClient, private restService: RestService) {}
3032

3133
@@ -50,11 +52,22 @@ export class AuthService {
5052
}
5153

5254
setSession(jwt: string) {
53-
localStorage.setItem('id_token', jwt);
55+
localStorage.setItem(this.LOCAL_STORAGE_JWT_LOCATION, jwt);
56+
}
57+
58+
getJwt() {
59+
return localStorage.getItem(this.LOCAL_STORAGE_JWT_LOCATION);
60+
}
61+
62+
isLoggedInWithKombit() {
63+
const jwt = localStorage.getItem(this.LOCAL_STORAGE_JWT_LOCATION);
64+
65+
const token = this.getDecodedAccessToken(jwt);
66+
return token?.isKombit == true;
5467
}
5568

5669
logout() {
57-
localStorage.removeItem('id_token');
70+
localStorage.removeItem(this.LOCAL_STORAGE_JWT_LOCATION);
5871
}
5972

6073
public isLoggedIn() {
@@ -64,7 +77,7 @@ export class AuthService {
6477
}
6578

6679
getExpiration() {
67-
const jwt = localStorage.getItem('id_token');
80+
const jwt = localStorage.getItem(this.LOCAL_STORAGE_JWT_LOCATION);
6881

6982
if (!jwt) {
7083
return moment(0);

src/app/navbar/navbar.component.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@
5656
</ul>
5757
</li>
5858
<li class="nav-item py-2 ">
59-
<a style="cursor: pointer;" class="nav-link pl-5 position-relative rounded" (click)="onLogout()">Logout</a>
59+
<a style="cursor: pointer;" class="nav-link pl-5 position-relative rounded" (click)="onLogout()"
60+
[attr.href]="getKombitLogoutUrl() ? getKombitLogoutUrl() : null"
61+
target="{{(isLoggedInWithKombit()) ? '_blank' : undefined}}">Logout</a>
6062
<fa-icon [icon]="faSignOutAlt" class="navbar-icon"></fa-icon>
6163
</li>
6264
</ul>

src/app/navbar/navbar.component.ts

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
import { Component, OnInit } from '@angular/core';
2-
32
import { TranslateService } from '@ngx-translate/core';
4-
import { faBroadcastTower, faSlidersH, faNetworkWired, faSignOutAlt, faSignInAlt } from '@fortawesome/free-solid-svg-icons';
3+
import {
4+
faBroadcastTower,
5+
faSlidersH,
6+
faNetworkWired,
7+
faSignOutAlt,
8+
faSignInAlt,
9+
} from '@fortawesome/free-solid-svg-icons';
510
import { AuthService } from '@app/auth/auth.service';
611
import { Router } from '@angular/router';
7-
12+
import { environment } from '@environments/environment';
813

914
@Component({
1015
selector: 'app-navbar',
@@ -22,14 +27,12 @@ export class NavbarComponent implements OnInit {
2227
constructor(
2328
private authService: AuthService,
2429
public translate: TranslateService,
25-
private router: Router,
30+
private router: Router
2631
) {
2732
translate.use('da');
2833
}
2934

30-
ngOnInit(): void {
31-
32-
}
35+
ngOnInit(): void {}
3336

3437
onLogout() {
3538
this.authService.logout();
@@ -39,4 +42,17 @@ export class NavbarComponent implements OnInit {
3942
isLoggedIn() {
4043
return this.authService.isLoggedIn();
4144
}
45+
46+
isLoggedInWithKombit() {
47+
return this.authService.isLoggedInWithKombit();
48+
}
49+
50+
getKombitLogoutUrl() {
51+
const jwt = this.authService.getJwt();
52+
if (this.authService.isLoggedInWithKombit()) {
53+
return `${environment.baseUrl}auth/kombit/logout?secret_token=${jwt}`;
54+
} else {
55+
return '';
56+
}
57+
}
4258
}

0 commit comments

Comments
 (0)