Răsfoiți Sursa

mgt logout fix

MaxKey 2 ani în urmă
părinte
comite
42f0631c53

+ 23 - 7
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}`);
+      });
   }
 }

+ 4 - 0
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();
   }