@okta/okta-angular
Version:
Angular support for Okta
73 lines • 8.97 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
/*
* Copyright (c) 2017-Present, Okta, Inc. and/or its affiliates. All rights reserved.
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (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 { Component, Optional, Inject } from '@angular/core';
import { OKTA_AUTH } from '../models/okta.config';
import * as i0 from "@angular/core";
import * as i1 from "../services/auth-config.serice";
import * as i2 from "@okta/okta-auth-js";
export class OktaCallbackComponent {
constructor(configService, oktaAuth, injector) {
this.configService = configService;
this.oktaAuth = oktaAuth;
this.injector = injector;
}
ngOnInit() {
return __awaiter(this, void 0, void 0, function* () {
const config = this.configService.getConfig();
if (!config) {
throw new Error('Okta config is not provided');
}
try {
// Parse code or tokens from the URL, store tokens in the TokenManager, and redirect back to the originalUri
yield this.oktaAuth.handleLoginRedirect();
}
catch (e) {
// Callback from social IDP. Show custom login page to continue.
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore Supports auth-js v5 & v6-7
const isInteractionRequiredError = this.oktaAuth.isInteractionRequiredError || this.oktaAuth.idx.isInteractionRequiredError;
if (isInteractionRequiredError(e) && this.injector) {
const { onAuthResume, onAuthRequired } = config;
const callbackFn = onAuthResume || onAuthRequired;
if (callbackFn) {
callbackFn(this.oktaAuth, this.injector);
return;
}
}
this.error = e.toString();
}
});
}
}
OktaCallbackComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: OktaCallbackComponent, deps: [{ token: i1.OktaAuthConfigService }, { token: OKTA_AUTH }, { token: i0.Injector, optional: true }], target: i0.ɵɵFactoryTarget.Component });
OktaCallbackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: OktaCallbackComponent, selector: "ng-component", ngImport: i0, template: `<div>{{error}}</div>`, isInline: true });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: OktaCallbackComponent, decorators: [{
type: Component,
args: [{
template: `<div>{{error}}</div>`
}]
}], ctorParameters: function () { return [{ type: i1.OktaAuthConfigService }, { type: i2.OktaAuth, decorators: [{
type: Inject,
args: [OKTA_AUTH]
}] }, { type: i0.Injector, decorators: [{
type: Optional
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGJhY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3NyYy9va3RhL2NvbXBvbmVudHMvY2FsbGJhY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFVLFFBQVEsRUFBWSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBTWxELE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsWUFDVSxhQUFvQyxFQUNqQixRQUFrQixFQUN6QixRQUFtQjtRQUYvQixrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFXO0lBQ3RDLENBQUM7SUFFRSxRQUFROztZQUNaLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7YUFDaEQ7WUFDRCxJQUFJO2dCQUNGLDRHQUE0RztnQkFDNUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDM0M7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixnRUFBZ0U7Z0JBQ2hFLDZEQUE2RDtnQkFDN0Qsd0NBQXdDO2dCQUN4QyxNQUFNLDBCQUEwQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsMEJBQTBCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUM7Z0JBQzVILElBQUksMEJBQTBCLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtvQkFDbEQsTUFBTSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLENBQUM7b0JBQ2hELE1BQU0sVUFBVSxHQUFHLFlBQVksSUFBSSxjQUFjLENBQUM7b0JBQ2xELElBQUksVUFBVSxFQUFFO3dCQUNkLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDekMsT0FBTztxQkFDUjtpQkFDRjtnQkFDRCxJQUFJLENBQUMsS0FBSyxHQUFJLENBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN0QztRQUNILENBQUM7S0FBQTs7bUhBaENVLHFCQUFxQix1REFLdEIsU0FBUzt1R0FMUixxQkFBcUIsb0RBRnRCLHNCQUFzQjs0RkFFckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDOzswQkFNSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUNoQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNy1QcmVzZW50LCBPa3RhLCBJbmMuIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFRoZSBPa3RhIHNvZnR3YXJlIGFjY29tcGFuaWVkIGJ5IHRoaXMgbm90aWNlIGlzIHByb3ZpZGVkIHB1cnN1YW50IHRvIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UuXCIpXG4gKlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC5cbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVFxuICogV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICpcbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9wdGlvbmFsLCBJbmplY3RvciwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPa3RhQXV0aCB9IGZyb20gJ0Bva3RhL29rdGEtYXV0aC1qcyc7XG5pbXBvcnQgeyBPS1RBX0FVVEggfSBmcm9tICcuLi9tb2RlbHMvb2t0YS5jb25maWcnO1xuaW1wb3J0IHsgT2t0YUF1dGhDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXV0aC1jb25maWcuc2VyaWNlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgPGRpdj57e2Vycm9yfX08L2Rpdj5gXG59KVxuZXhwb3J0IGNsYXNzIE9rdGFDYWxsYmFja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGVycm9yPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogT2t0YUF1dGhDb25maWdTZXJ2aWNlLFxuICAgIEBJbmplY3QoT0tUQV9BVVRIKSBwcml2YXRlIG9rdGFBdXRoOiBPa3RhQXV0aCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGluamVjdG9yPzogSW5qZWN0b3JcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoKTtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdPa3RhIGNvbmZpZyBpcyBub3QgcHJvdmlkZWQnKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIC8vIFBhcnNlIGNvZGUgb3IgdG9rZW5zIGZyb20gdGhlIFVSTCwgc3RvcmUgdG9rZW5zIGluIHRoZSBUb2tlbk1hbmFnZXIsIGFuZCByZWRpcmVjdCBiYWNrIHRvIHRoZSBvcmlnaW5hbFVyaVxuICAgICAgYXdhaXQgdGhpcy5va3RhQXV0aC5oYW5kbGVMb2dpblJlZGlyZWN0KCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gQ2FsbGJhY2sgZnJvbSBzb2NpYWwgSURQLiBTaG93IGN1c3RvbSBsb2dpbiBwYWdlIHRvIGNvbnRpbnVlLlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgLy8gQHRzLWlnbm9yZSBTdXBwb3J0cyBhdXRoLWpzIHY1ICYgdjYtN1xuICAgICAgY29uc3QgaXNJbnRlcmFjdGlvblJlcXVpcmVkRXJyb3IgPSB0aGlzLm9rdGFBdXRoLmlzSW50ZXJhY3Rpb25SZXF1aXJlZEVycm9yIHx8IHRoaXMub2t0YUF1dGguaWR4LmlzSW50ZXJhY3Rpb25SZXF1aXJlZEVycm9yO1xuICAgICAgaWYgKGlzSW50ZXJhY3Rpb25SZXF1aXJlZEVycm9yKGUpICYmIHRoaXMuaW5qZWN0b3IpIHtcbiAgICAgICAgY29uc3QgeyBvbkF1dGhSZXN1bWUsIG9uQXV0aFJlcXVpcmVkIH0gPSBjb25maWc7XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrRm4gPSBvbkF1dGhSZXN1bWUgfHwgb25BdXRoUmVxdWlyZWQ7XG4gICAgICAgIGlmIChjYWxsYmFja0ZuKSB7XG4gICAgICAgICAgY2FsbGJhY2tGbih0aGlzLm9rdGFBdXRoLCB0aGlzLmluamVjdG9yKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuZXJyb3IgPSAoZSBhcyBFcnJvcikudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==