有人可以帮助我从Keycloak集成到Angular 6吗? 我不知道如何启动以及如何初始化Javascript适配器
答案 0 :(得分:1)
我用了这个: https://github.com/mauriciovigolo/keycloak-angular
其中描述了每个步骤,还包括一个示例如何集成。
答案 1 :(得分:0)
如果您使用Angular 8+和Keycloak OpenId Connect启用REST登录,注销,检查会话,则可以使用以下角度依赖性:
Angular Keycloak Dependency for version 2+ tested for Angular version 8+
安装
npm i ng-keycloak
API
import { NgKeycloakModule } from 'ng-keycloak';
#用法
在您的应用模块中注册NgKeycloakModule。
import { NgKeycloakModule } from 'ng-keycloak';
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
NgKeycloakModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
在组件中使用导入的NgKeycloakService。
import { Component, OnInit } from '@angular/core';
import { NgKeycloakService } from 'ng-keycloak';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
username = 'YOUR_KEYCLOAK_USERNAME_TO_LOGIN';
password = 'YOUR_KEYCLOAK_PASSWORD_TO_LOGIN';
// The BASE_URL is empty in case the proxy-config is used from Angular to resolve the CORS error
// If the CORS error is not present use the BASE URL as the keycloak url with the port number
// Example BASE_URL = 'http://13.43.53.42:30224'
keycloakConfig = {
BASE_URL: '',
realm: 'YOUR_REALM_NAME',
clientId: 'YOUR_CLIENT_ID',
credentials: {
secret: 'YOUR_CLIENT_SECRET'
}
};
constructor(private ngKeycloakService: NgKeycloakService) { }
ngOnInit(): void {
// You need to set the Keycloak Configuration using _setkeycloakConfig(config) method before you
// can use the Library
this.ngKeycloakService._setkeycloakConfig(keycloakConfig);
this.ngKeycloakService.logout().pipe().subscribe(logoutSuccessResponse => {
console.log('Logout Success Response', logoutSuccessResponse);
}, (logoutErrorResponse) => {
console.log('Logout Error', logoutErrorResponse);
});
this.ngKeycloakService.login(this.username, this.password).pipe().subscribe(loginSuccessResponse => {
console.log('Login Success', loginSuccessResponse);
}, (loginErrorResponse) => {
console.log('Login Error Response', loginErrorResponse);
});
this.ngKeycloakService.isLoggedIn().pipe().subscribe(loginStatusResponse => {
console.log('Login Check Status', loginStatusResponse);
}, (loginStatusErrorResponse) => {
console.log('Login Check Status Error', loginStatusErrorResponse);
});
}
}