expiry display, not yet working

This commit is contained in:
Wolfgang Hottgenroth 2021-09-03 20:13:45 +02:00
parent 2312f21d77
commit 657d85538e
Signed by: wn
GPG Key ID: 6C1E5E531E0D5D7F
3 changed files with 27 additions and 2 deletions

View File

@ -28,6 +28,7 @@
</button> </button>
<span>Nober Grundbesitz GbR Hausverwaltung</span> <span>Nober Grundbesitz GbR Hausverwaltung</span>
<span class="spacer"></span> <span class="spacer"></span>
<span class="gittagversion">Expires in: {{expiresIn}} seconds</span>
<span class="gittagversion">GITTAGVERSION</span> <span class="gittagversion">GITTAGVERSION</span>
<a *ngIf="!authenticated" mat-button routerLink="/login">Login</a> <a *ngIf="!authenticated" mat-button routerLink="/login">Login</a>
<a *ngIf="authenticated" mat-button routerLink="/logout">Logout</a> <a *ngIf="authenticated" mat-button routerLink="/logout">Logout</a>

View File

@ -5,6 +5,8 @@ import { map, shareReplay } from 'rxjs/operators';
import { TokenService } from '../token.service'; import { TokenService } from '../token.service';
import { NavigationEnd, Router } from '@angular/router'; import { NavigationEnd, Router } from '@angular/router';
@Component({ @Component({
selector: 'app-navigation', selector: 'app-navigation',
templateUrl: './navigation.component.html', templateUrl: './navigation.component.html',
@ -13,6 +15,7 @@ import { NavigationEnd, Router } from '@angular/router';
export class NavigationComponent { export class NavigationComponent {
public authenticated: boolean public authenticated: boolean
expiresIn: number
isHandset$: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Handset) isHandset$: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Handset)
.pipe( .pipe(
@ -33,6 +36,7 @@ export class NavigationComponent {
ngOnInit() { ngOnInit() {
this.authenticated = this.tokenService.checkAuthenticated() this.authenticated = this.tokenService.checkAuthenticated()
this.expiresIn = 600
} }
} }

View File

@ -3,6 +3,8 @@ import { MessageService } from './message.service';
import { HttpClient, HttpHeaders } from '@angular/common/http'; import { HttpClient, HttpHeaders } from '@angular/common/http';
import { UserCreds } from './userCreds' import { UserCreds } from './userCreds'
import jwt_decode from 'jwt-decode' import jwt_decode from 'jwt-decode'
import { Observable } from 'rxjs';
import { ComplexOuterSubscriber } from 'rxjs/internal/innerSubscribe';
@ -45,7 +47,7 @@ export class TokenService {
} }
async login(login: string, password: string) { async login(login: string, password: string) {
this.messageService.add(`TokenService: trying to login and obtain token`); this.messageService.add(`TokenService: trying to login and obtain token`)
const userCreds : UserCreds = { const userCreds : UserCreds = {
"application": "hv2", "application": "hv2",
"login": login, "login": login,
@ -62,7 +64,7 @@ export class TokenService {
async refresh() { async refresh() {
try { try {
this.messageService.add(`TokenService: trying to refresh tokens`); this.messageService.add(`TokenService: trying to refresh tokens`)
const refreshToken = localStorage.getItem(TokenService.Id_RefreshToken_Key) const refreshToken = localStorage.getItem(TokenService.Id_RefreshToken_Key)
const tokenTuple: TokenTuple = await this.http.post<TokenTuple>( const tokenTuple: TokenTuple = await this.http.post<TokenTuple>(
"https://authservice.hottis.de/refresh", "https://authservice.hottis.de/refresh",
@ -79,5 +81,23 @@ export class TokenService {
} }
} }
expiryUpdate() : Observable<number> {
const exUp = new Observable<number>((observer) => {
let i = 600
while (i != 0) {
observer.next(i)
i -= 1
await new Promise(f => setTimeout(f, 1000))
}
observer.complete()
return {
unsubscribe() {
}
}
})
return exUp
}
} }