change authenticate service, log in
This commit is contained in:
parent
2d7c3d0f24
commit
d139b905d9
|
@ -10,9 +10,9 @@ import { BaseHttpParams } from '@common/http/base-http-params';
|
|||
import { InterceptorType } from '@common/http/interceptors/interceptor-type';
|
||||
import { Guid } from '@common/types/guid';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { KeycloakEventType, KeycloakService } from 'keycloak-angular';
|
||||
import { KeycloakEvent, KeycloakEventType, KeycloakService } from 'keycloak-angular';
|
||||
import { Observable, Subject, forkJoin, from, of } from 'rxjs';
|
||||
import { concatMap, exhaustMap, map, takeUntil } from 'rxjs/operators';
|
||||
import { concatMap, exhaustMap, map, takeUntil, tap } from 'rxjs/operators';
|
||||
import { ConfigurationService } from '../configuration/configuration.service';
|
||||
import { PrincipalService } from '../http/principal.service';
|
||||
import { TenantHandlingService } from '../tenant/tenant-handling.service';
|
||||
|
@ -291,14 +291,14 @@ export class AuthService extends BaseService {
|
|||
}
|
||||
|
||||
|
||||
public authenticate(returnUrl: string) {
|
||||
public authenticate(returnUrl: string): Observable<KeycloakEvent | null> {
|
||||
if (!this.keycloakService.isLoggedIn()) {
|
||||
this.keycloakService.login({
|
||||
scope: this.installationConfiguration.keycloak.scope,
|
||||
})
|
||||
.then(() => {
|
||||
this.keycloakService.keycloakEvents$.subscribe({
|
||||
next: (e) => {
|
||||
return this.keycloakService.keycloakEvents$.pipe(
|
||||
tap((e) => {
|
||||
if (
|
||||
e.type === KeycloakEventType.OnTokenExpired
|
||||
) {
|
||||
|
@ -313,13 +313,13 @@ export class AuthService extends BaseService {
|
|||
throw x;
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
this.onAuthenticateSuccess(returnUrl);
|
||||
}),
|
||||
);
|
||||
})
|
||||
.catch((error) => this.onAuthenticateError(error));
|
||||
} else {
|
||||
this.zone.run(() => this.router.navigateByUrl(returnUrl));
|
||||
return of();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -361,10 +361,6 @@ export class AuthService extends BaseService {
|
|||
|
||||
onAuthenticateSuccess(returnUrl: string): void {
|
||||
this.authState(true);
|
||||
// this.uiNotificationService.snackBarNotification(
|
||||
// this.language.instant('GENERAL.SNACK-BAR.SUCCESSFUL-LOGIN'),
|
||||
// SnackBarNotificationLevel.Success
|
||||
// );
|
||||
this.zone.run(() => this.router.navigateByUrl(returnUrl));
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
import { Component, Input, NgZone, OnInit } from '@angular/core';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { AuthService } from '@app/core/services/auth/auth.service';
|
||||
import { SnackBarNotificationLevel, UiNotificationService } from '@app/core/services/notification/ui-notification-service';
|
||||
import { RouterUtilsService } from '@app/core/services/router/router-utils.service';
|
||||
import { TenantHandlingService } from '@app/core/services/tenant/tenant-handling.service';
|
||||
import { BaseComponent } from '@common/base/base.component';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { KeycloakService } from 'keycloak-angular';
|
||||
import { from } from 'rxjs';
|
||||
import { takeUntil } from 'rxjs/operators';
|
||||
|
@ -28,13 +30,25 @@ export class LoginComponent extends BaseComponent implements OnInit {
|
|||
private authService: AuthService,
|
||||
private route: ActivatedRoute,
|
||||
private tenantHandlingService: TenantHandlingService,
|
||||
private keycloakService: KeycloakService
|
||||
private keycloakService: KeycloakService,
|
||||
private uiNotificationService: UiNotificationService,
|
||||
private language: TranslateService
|
||||
) { super(); }
|
||||
|
||||
ngOnInit(): void {
|
||||
this.returnUrl = this.route.snapshot.queryParamMap.get('returnUrl') || '/';
|
||||
if (!this.keycloakService.isLoggedIn()) {
|
||||
this.authService.authenticate(this.returnUrl);
|
||||
this.authService.authenticate(this.returnUrl)
|
||||
.pipe(takeUntil(this._destroyed))
|
||||
.subscribe({
|
||||
next: () => {
|
||||
this.uiNotificationService.snackBarNotification( //maybe remove this
|
||||
this.language.instant('GENERAL.SNACK-BAR.SUCCESSFUL-LOGIN'),
|
||||
SnackBarNotificationLevel.Success
|
||||
);
|
||||
this.authService.onAuthenticateSuccess(this.returnUrl);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
const tenantCode = this.tenantHandlingService.extractTenantCodeFromUrlPath(this.returnUrl) ?? this.authService.selectedTenant() ?? 'default';
|
||||
let returnUrL = this.returnUrl;
|
||||
|
|
|
@ -13,7 +13,7 @@ import { MergeEmailLoaderDialogComponent } from './merge-email-confirmation/merg
|
|||
imports: [
|
||||
CommonUiModule,
|
||||
CommonFormsModule,
|
||||
LoginRoutingModule
|
||||
LoginRoutingModule,
|
||||
],
|
||||
declarations: [
|
||||
LoginComponent,
|
||||
|
|
|
@ -19,7 +19,6 @@ export class LanguageComponent extends BaseComponent implements OnInit {
|
|||
constructor(
|
||||
private router: Router,
|
||||
private authentication: AuthService,
|
||||
private userService: UserService,
|
||||
private languageService: LanguageService
|
||||
) {
|
||||
super();
|
||||
|
|
Loading…
Reference in New Issue