@ebondu/angular2-keycloak
Version:
58 lines • 6.77 kB
JavaScript
/*
* Copyright 2018 ebondu and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* 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.
*/
/**
* Default adapter for web browsers
*/
export class DefaultAdapter {
keycloak;
constructor(keycloak) {
this.keycloak = keycloak;
}
login(options) {
window.location.href = this.keycloak.createLoginUrl(options);
}
logout(options) {
window.location.href = this.keycloak.createLogoutUrl(options);
}
register(options) {
window.location.href = this.keycloak.createRegisterUrl(options);
}
accountManagement() {
window.location.href = this.keycloak.createAccountUrl({});
}
passwordManagement() {
window.location.href = this.keycloak.createChangePasswordUrl({});
}
redirectUri(options, encodeHash) {
if (arguments.length === 1) {
encodeHash = true;
}
if (options && options.redirectUri) {
return options.redirectUri;
}
else {
let redirectUri = location.href;
if (location.hash && encodeHash) {
redirectUri = redirectUri.substring(0, location.href.indexOf('#'));
redirectUri += (redirectUri.indexOf('?') === -1 ? '?' : '&') + 'redirect_fragment=' +
encodeURIComponent(location.hash.substring(1));
}
return redirectUri;
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWsuYWRhcHRlci5kZWZhdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWJvbmR1L2FuZ3VsYXIta2V5Y2xvYWsvc3JjL2xpYi9hZGFwdGVyL2tleWNsb2FrLmFkYXB0ZXIuZGVmYXVsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFLSDs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBRUw7SUFBcEIsWUFBb0IsUUFBeUI7UUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7SUFDN0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFZO1FBQ3ZCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxNQUFNLENBQUMsT0FBWTtRQUN4QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU0sUUFBUSxDQUFDLE9BQVk7UUFDMUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBWSxFQUFFLFVBQW1CO1FBRWxELElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLENBQUM7UUFFRCxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkMsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNoQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2hDLFdBQVcsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNuRSxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLG9CQUFvQjtvQkFDakYsa0JBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQ0QsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxOCBlYm9uZHUgYW5kL29yIGl0cyBhZmZpbGlhdGVzXG4gKiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIGFzIGluZGljYXRlZCBieSB0aGUgQGF1dGhvciB0YWdzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cblxuaW1wb3J0IHsgS2V5Y2xvYWtTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9rZXljbG9hay5zZXJ2aWNlJztcblxuLyoqXG4gKiBEZWZhdWx0IGFkYXB0ZXIgZm9yIHdlYiBicm93c2Vyc1xuICovXG5leHBvcnQgY2xhc3MgRGVmYXVsdEFkYXB0ZXIge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUga2V5Y2xvYWs6IEtleWNsb2FrU2VydmljZSkge1xuICB9XG5cbiAgcHVibGljIGxvZ2luKG9wdGlvbnM6IGFueSkge1xuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5rZXljbG9hay5jcmVhdGVMb2dpblVybChvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2dvdXQob3B0aW9uczogYW55KSB7XG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmtleWNsb2FrLmNyZWF0ZUxvZ291dFVybChvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlcihvcHRpb25zOiBhbnkpIHtcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMua2V5Y2xvYWsuY3JlYXRlUmVnaXN0ZXJVcmwob3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgYWNjb3VudE1hbmFnZW1lbnQoKSB7XG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmtleWNsb2FrLmNyZWF0ZUFjY291bnRVcmwoe30pO1xuICB9XG5cbiAgcHVibGljIHBhc3N3b3JkTWFuYWdlbWVudCgpIHtcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMua2V5Y2xvYWsuY3JlYXRlQ2hhbmdlUGFzc3dvcmRVcmwoe30pO1xuICB9XG5cbiAgcHVibGljIHJlZGlyZWN0VXJpKG9wdGlvbnM6IGFueSwgZW5jb2RlSGFzaDogYm9vbGVhbik6IHN0cmluZyB7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgZW5jb2RlSGFzaCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5yZWRpcmVjdFVyaSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMucmVkaXJlY3RVcmk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCByZWRpcmVjdFVyaSA9IGxvY2F0aW9uLmhyZWY7XG4gICAgICBpZiAobG9jYXRpb24uaGFzaCAmJiBlbmNvZGVIYXNoKSB7XG4gICAgICAgIHJlZGlyZWN0VXJpID0gcmVkaXJlY3RVcmkuc3Vic3RyaW5nKDAsIGxvY2F0aW9uLmhyZWYuaW5kZXhPZignIycpKTtcbiAgICAgICAgcmVkaXJlY3RVcmkgKz0gKHJlZGlyZWN0VXJpLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICsgJ3JlZGlyZWN0X2ZyYWdtZW50PScgK1xuICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5oYXNoLnN1YnN0cmluZygxKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVkaXJlY3RVcmk7XG4gICAgfVxuICB9XG59XG4iXX0=