From 42f0631c538384c50e5e3992d641ffcb6488c66b Mon Sep 17 00:00:00 2001 From: MaxKey Date: Thu, 28 Jul 2022 09:18:29 +0800 Subject: [PATCH] mgt logout fix --- .../layout/basic/widgets/user.component.ts | 30 ++++++++++++++----- .../src/app/service/authn.service.ts | 4 +++ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/layout/basic/widgets/user.component.ts b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/layout/basic/widgets/user.component.ts index 27794aece..0ec9a35ac 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/layout/basic/widgets/user.component.ts +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/layout/basic/widgets/user.component.ts @@ -1,24 +1,26 @@ /* * Copyright [2022] [MaxKey of copyright http://www.maxkey.top] - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ - import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; import { Router } from '@angular/router'; import { DA_SERVICE_TOKEN, ITokenService } from '@delon/auth'; import { SettingsService, User } from '@delon/theme'; +import { finalize } from 'rxjs/operators'; + +import { AuthnService } from '../../../service/authn.service'; @Component({ selector: 'header-user', @@ -74,10 +76,24 @@ export class HeaderUserComponent { return this.settings.user; } - constructor(private settings: SettingsService, private router: Router, @Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService) {} + constructor( + private settings: SettingsService, + private router: Router, + private authnService: AuthnService, + @Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService + ) { } logout(): void { - this.tokenService.clear(); - this.router.navigateByUrl(this.tokenService.login_url!); + this.authnService + .logout() + .pipe( + finalize(() => { + this.tokenService.clear(); + this.router.navigateByUrl(this.tokenService.login_url!); + }) + ) + .subscribe(res => { + console.log(`Logout Response ${res.data}`); + }); } } diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/service/authn.service.ts b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/service/authn.service.ts index 6b5d5f21e..8cf60ab0c 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/service/authn.service.ts +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/service/authn.service.ts @@ -65,6 +65,10 @@ export class AuthnService { return this.http.get(`/login/jwt?_allow_anonymous=true`, authParam); } + logout() { + return this.http.get('/logout'); + } + clear() { this.tokenService.clear(); }