fix: Keycloak logout issue

This commit is contained in:
Norman Schmidt 2023-08-21 11:29:51 +02:00 committed by Cel
parent dee3c35180
commit 930306d00f
3 changed files with 5 additions and 33 deletions

View File

@ -12,7 +12,6 @@ import {UserService} from '@shared/services/user-service/user.service';
import {User} from '@shared/models/user.model'; import {User} from '@shared/models/user.model';
import {BehaviorSubject} from 'rxjs'; import {BehaviorSubject} from 'rxjs';
import {Route} from '@shared/models/route.enum'; import {Route} from '@shared/models/route.enum';
import {environment} from '../../environments/environment';
import {Router} from '@angular/router'; import {Router} from '@angular/router';
import {DialogService} from '@shared/services/dialog-service/dialog.service'; import {DialogService} from '@shared/services/dialog-service/dialog.service';
import {ProfileSettingsComponent} from '@shared/modules/profile-settings/profile-settings.component'; import {ProfileSettingsComponent} from '@shared/modules/profile-settings/profile-settings.component';
@ -148,9 +147,7 @@ export class HeaderComponent implements OnInit {
} }
onClickLogOut(): void { onClickLogOut(): void {
// ToDo: Has to be implemented once HTTPS works this.userService.logout().then(() => {
/*this.userService.logout().then(() => {
console.warn('logout success'); console.warn('logout success');
// Route user back to default page // Route user back to default page
this.router.navigate([Route.HOME]).then(() => { this.router.navigate([Route.HOME]).then(() => {
@ -162,6 +159,6 @@ export class HeaderComponent implements OnInit {
}); });
}, err => { }, err => {
console.error(err); console.error(err);
});*/ });
} }
} }

View File

@ -1,24 +1,16 @@
import {Injectable} from '@angular/core'; import {Injectable} from '@angular/core';
import {HttpClient, HttpHeaders} from '@angular/common/http'; import {HttpHeaders} from '@angular/common/http';
import {User} from '../../models/user.model'; import {User} from '../../models/user.model';
import {from, Observable, of, Subscriber} from 'rxjs'; import {from, Observable, of, Subscriber} from 'rxjs';
import {Store} from '@ngxs/store';
import {KeycloakService} from 'keycloak-angular'; import {KeycloakService} from 'keycloak-angular';
import {map} from 'rxjs/operators'; import {map} from 'rxjs/operators';
import {environment} from '../../../environments/environment';
import {Route} from '@shared/models/route.enum';
import {Project} from '@shared/models/project.model';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
export class UserService { export class UserService {
private keycloakBaseURL = `${environment.keycloakURL}/`; constructor(private keycloakService: KeycloakService) {
constructor(private http: HttpClient,
private keycloakService: KeycloakService,
private store: Store) {
} }
private static createHttpHeadersWithContentType(token: string): HttpHeaders { private static createHttpHeadersWithContentType(token: string): HttpHeaders {
@ -48,25 +40,8 @@ export class UserService {
return this.keycloakService.logout(); return this.keycloakService.logout();
} }
// ToDo: Change update profile propterties OR ...
// ...In our angular application, best way to change password was to create “button” with “hardcoded” link to:
// https://keycloakUrl/realms/myrealm/protocol/openid-connect/auth 58
// ?response_type=code
// &client_id=myclient
// &redirect_uri=myAppUrl
// &kc_action=UPDATE_PASSWORD
// ToDo: Or use API
// https://stackoverflow.com/questions/33910615/is-there-an-api-call-for-changing-user-password-on-keycloak
// ToDo: https://www.keycloak.org/docs/latest/server_development/
public changeUserProperties(user: User): Observable<any> { public changeUserProperties(user: User): Observable<any> {
// ToDo: There is a kc_action parameter available in keycloak to let application force required actions.
console.warn(user); console.warn(user);
/*../realms/myrealm/protocol/openid-connect/auth
?response_type=code
&client_id=myclient
&redirect_uri=https://myclient.com
&kc_action=update_profile*/
return of(user); return of(user);
} }

View File

@ -37,7 +37,7 @@ services:
- ./cfg/c4po_realm_export.json/:/opt/keycloak/data/import/c4po_realm_export.json - ./cfg/c4po_realm_export.json/:/opt/keycloak/data/import/c4po_realm_export.json
ports: ports:
- 8080:8080 - 8080:8080
entrypoint: /opt/keycloak/bin/kc.sh start-dev --import-realm --http-relative-path=/auth entrypoint: /opt/keycloak/bin/kc.sh --spi-login-protocol-openid-connect-legacy-logout-redirect-uri=true start-dev --import-realm --http-relative-path=/auth
networks: networks:
- c4po - c4po
# Services # Services