UNPKG

@okta/okta-angular

Version:
68 lines 8.44 kB
/* * 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, Injector, Inject } from '@angular/core'; import { OktaAuth } from '@okta/okta-auth-js'; import { OKTA_AUTH } from '../models/okta.config'; import { OktaAuthConfigService } from '../services/auth-config.serice'; 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 { configService; oktaAuth; injector; error; constructor(configService, oktaAuth, injector) { this.configService = configService; this.oktaAuth = oktaAuth; this.injector = injector; } async ngOnInit() { 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 await 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(); } } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OktaCallbackComponent, deps: [{ token: i1.OktaAuthConfigService }, { token: OKTA_AUTH }, { token: i0.Injector, optional: true }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OktaCallbackComponent, selector: "ng-component", ngImport: i0, template: `<div>{{error}}</div>`, isInline: true }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGJhY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3NyYy9va3RhL2NvbXBvbmVudHMvY2FsbGJhY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFVLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFLdkUsTUFBTSxPQUFPLHFCQUFxQjtJQUl0QjtJQUNtQjtJQUNQO0lBTHRCLEtBQUssQ0FBVTtJQUVmLFlBQ1UsYUFBb0MsRUFDakIsUUFBa0IsRUFDekIsUUFBbUI7UUFGL0Isa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUN0QyxDQUFDO0lBRUosS0FBSyxDQUFDLFFBQVE7UUFDWixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDaEQ7UUFDRCxJQUFJO1lBQ0YsNEdBQTRHO1lBQzVHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQzNDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixnRUFBZ0U7WUFDaEUsNkRBQTZEO1lBQzdELHdDQUF3QztZQUN4QyxNQUFNLDBCQUEwQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsMEJBQTBCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUM7WUFDNUgsSUFBSSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNsRCxNQUFNLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sQ0FBQztnQkFDaEQsTUFBTSxVQUFVLEdBQUcsWUFBWSxJQUFJLGNBQWMsQ0FBQztnQkFDbEQsSUFBSSxVQUFVLEVBQUU7b0JBQ2QsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN6QyxPQUFPO2lCQUNSO2FBQ0Y7WUFDRCxJQUFJLENBQUMsS0FBSyxHQUFJLENBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN0QztJQUNILENBQUM7d0dBaENVLHFCQUFxQix1REFLdEIsU0FBUzs0RkFMUixxQkFBcUIsb0RBRnRCLHNCQUFzQjs7NEZBRXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQzs7MEJBTUksTUFBTTsyQkFBQyxTQUFTOzswQkFDaEIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTctUHJlc2VudCwgT2t0YSwgSW5jLiBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBUaGUgT2t0YSBzb2Z0d2FyZSBhY2NvbXBhbmllZCBieSB0aGlzIG5vdGljZSBpcyBwcm92aWRlZCBwdXJzdWFudCB0byB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlLlwiKVxuICpcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAuXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVRcbiAqIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPcHRpb25hbCwgSW5qZWN0b3IsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2t0YUF1dGggfSBmcm9tICdAb2t0YS9va3RhLWF1dGgtanMnO1xuaW1wb3J0IHsgT0tUQV9BVVRIIH0gZnJvbSAnLi4vbW9kZWxzL29rdGEuY29uZmlnJztcbmltcG9ydCB7IE9rdGFBdXRoQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2F1dGgtY29uZmlnLnNlcmljZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYDxkaXY+e3tlcnJvcn19PC9kaXY+YFxufSlcbmV4cG9ydCBjbGFzcyBPa3RhQ2FsbGJhY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBlcnJvcj86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IE9rdGFBdXRoQ29uZmlnU2VydmljZSxcbiAgICBASW5qZWN0KE9LVEFfQVVUSCkgcHJpdmF0ZSBva3RhQXV0aDogT2t0YUF1dGgsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBpbmplY3Rvcj86IEluamVjdG9yXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCk7XG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignT2t0YSBjb25maWcgaXMgbm90IHByb3ZpZGVkJyk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAvLyBQYXJzZSBjb2RlIG9yIHRva2VucyBmcm9tIHRoZSBVUkwsIHN0b3JlIHRva2VucyBpbiB0aGUgVG9rZW5NYW5hZ2VyLCBhbmQgcmVkaXJlY3QgYmFjayB0byB0aGUgb3JpZ2luYWxVcmlcbiAgICAgIGF3YWl0IHRoaXMub2t0YUF1dGguaGFuZGxlTG9naW5SZWRpcmVjdCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIENhbGxiYWNrIGZyb20gc29jaWFsIElEUC4gU2hvdyBjdXN0b20gbG9naW4gcGFnZSB0byBjb250aW51ZS5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgIC8vIEB0cy1pZ25vcmUgU3VwcG9ydHMgYXV0aC1qcyB2NSAmIHY2LTdcbiAgICAgIGNvbnN0IGlzSW50ZXJhY3Rpb25SZXF1aXJlZEVycm9yID0gdGhpcy5va3RhQXV0aC5pc0ludGVyYWN0aW9uUmVxdWlyZWRFcnJvciB8fCB0aGlzLm9rdGFBdXRoLmlkeC5pc0ludGVyYWN0aW9uUmVxdWlyZWRFcnJvcjtcbiAgICAgIGlmIChpc0ludGVyYWN0aW9uUmVxdWlyZWRFcnJvcihlKSAmJiB0aGlzLmluamVjdG9yKSB7XG4gICAgICAgIGNvbnN0IHsgb25BdXRoUmVzdW1lLCBvbkF1dGhSZXF1aXJlZCB9ID0gY29uZmlnO1xuICAgICAgICBjb25zdCBjYWxsYmFja0ZuID0gb25BdXRoUmVzdW1lIHx8IG9uQXV0aFJlcXVpcmVkO1xuICAgICAgICBpZiAoY2FsbGJhY2tGbikge1xuICAgICAgICAgIGNhbGxiYWNrRm4odGhpcy5va3RhQXV0aCwgdGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmVycm9yID0gKGUgYXMgRXJyb3IpLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9XG59XG4iXX0=