@okta/okta-angular
Version:
Angular support for Okta
47 lines • 7.54 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());
});
};
import { VERSION } from '@angular/core';
import { AuthSdkError, toRelativeUrl } from '@okta/okta-auth-js';
import { compare } from 'compare-versions';
import packageInfo from '../packageInfo';
export class OktaAuthFactoryService {
static setupOktaAuth(oktaAuth, router, location) {
const isAuthJsSupported = oktaAuth._oktaUserAgent && compare(oktaAuth._oktaUserAgent.getVersion(), packageInfo.authJSMinSupportedVersion, '>=');
if (!isAuthJsSupported) {
throw new AuthSdkError(`Passed in oktaAuth is not compatible with the SDK, minimum supported okta-auth-js version is ${packageInfo.authJSMinSupportedVersion}.`);
}
// Add Okta UA
oktaAuth._oktaUserAgent.addEnvironment(`${packageInfo.name}/${packageInfo.version}`);
oktaAuth._oktaUserAgent.addEnvironment(`Angular/${VERSION.full}`);
// Provide a default implementation of `restoreOriginalUri`
if (!oktaAuth.options.restoreOriginalUri && router && location) {
oktaAuth.options.restoreOriginalUri = (_, originalUri) => __awaiter(this, void 0, void 0, function* () {
const baseUrl = window.location.origin + location.prepareExternalUrl('');
const routePath = toRelativeUrl(originalUri || '/', baseUrl);
router.navigateByUrl(routePath);
});
}
// Start services
oktaAuth.start();
}
static createOktaAuth(configService, router, location) {
const config = configService.getConfig();
if (!config) {
throw new Error('Okta config is not provided');
}
const { oktaAuth } = config;
if (!oktaAuth) {
throw new Error('Okta config should contain oktaAuth');
}
OktaAuthFactoryService.setupOktaAuth(oktaAuth, router, location);
return oktaAuth;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1mYWN0b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvc3JjL29rdGEvc2VydmljZXMvYXV0aC1mYWN0b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4QyxPQUFPLEVBQUUsWUFBWSxFQUFZLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLFdBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxNQUFNLE9BQU8sc0JBQXNCO0lBQ3pCLE1BQU0sQ0FBQyxhQUFhLENBQzFCLFFBQWtCLEVBQ2xCLE1BQWUsRUFDZixRQUFtQjtRQUVuQixNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxjQUFjLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLEVBQUUsV0FBVyxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hKLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN0QixNQUFNLElBQUksWUFBWSxDQUFDLGdHQUFnRyxXQUFXLENBQUMseUJBQXlCLEdBQUcsQ0FBQyxDQUFDO1NBQ2xLO1FBRUQsY0FBYztRQUNkLFFBQVEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEdBQUcsV0FBVyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNyRixRQUFRLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxXQUFXLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRWxFLDJEQUEyRDtRQUMzRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxNQUFNLElBQUksUUFBUSxFQUFFO1lBQzlELFFBQVEsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEdBQUcsQ0FBTyxDQUFDLEVBQUUsV0FBK0IsRUFBRSxFQUFFO2dCQUNqRixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3pFLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxXQUFXLElBQUksR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUM3RCxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQSxDQUFDO1NBQ0g7UUFFRCxpQkFBaUI7UUFDakIsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUMxQixhQUFvQyxFQUNwQyxNQUFlLEVBQ2YsUUFBbUI7UUFFbkIsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDaEQ7UUFFRCxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVqRSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBWRVJTSU9OIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXV0aFNka0Vycm9yLCBPa3RhQXV0aCwgdG9SZWxhdGl2ZVVybCB9IGZyb20gJ0Bva3RhL29rdGEtYXV0aC1qcyc7XG5pbXBvcnQgeyBPa3RhQXV0aENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2F1dGgtY29uZmlnLnNlcmljZSc7XG5pbXBvcnQgeyBjb21wYXJlIH0gZnJvbSAnY29tcGFyZS12ZXJzaW9ucyc7XG5pbXBvcnQgcGFja2FnZUluZm8gZnJvbSAnLi4vcGFja2FnZUluZm8nO1xuXG5leHBvcnQgY2xhc3MgT2t0YUF1dGhGYWN0b3J5U2VydmljZSB7XG4gIHByaXZhdGUgc3RhdGljIHNldHVwT2t0YUF1dGgoXG4gICAgb2t0YUF1dGg6IE9rdGFBdXRoLFxuICAgIHJvdXRlcj86IFJvdXRlciwgXG4gICAgbG9jYXRpb24/OiBMb2NhdGlvblxuICApOiB2b2lkIHtcbiAgICBjb25zdCBpc0F1dGhKc1N1cHBvcnRlZCA9IG9rdGFBdXRoLl9va3RhVXNlckFnZW50ICYmIGNvbXBhcmUob2t0YUF1dGguX29rdGFVc2VyQWdlbnQuZ2V0VmVyc2lvbigpLCBwYWNrYWdlSW5mby5hdXRoSlNNaW5TdXBwb3J0ZWRWZXJzaW9uLCAnPj0nKTtcbiAgICBpZiAoIWlzQXV0aEpzU3VwcG9ydGVkKSB7XG4gICAgICB0aHJvdyBuZXcgQXV0aFNka0Vycm9yKGBQYXNzZWQgaW4gb2t0YUF1dGggaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgU0RLLCBtaW5pbXVtIHN1cHBvcnRlZCBva3RhLWF1dGgtanMgdmVyc2lvbiBpcyAke3BhY2thZ2VJbmZvLmF1dGhKU01pblN1cHBvcnRlZFZlcnNpb259LmApO1xuICAgIH1cblxuICAgIC8vIEFkZCBPa3RhIFVBXG4gICAgb2t0YUF1dGguX29rdGFVc2VyQWdlbnQuYWRkRW52aXJvbm1lbnQoYCR7cGFja2FnZUluZm8ubmFtZX0vJHtwYWNrYWdlSW5mby52ZXJzaW9ufWApO1xuICAgIG9rdGFBdXRoLl9va3RhVXNlckFnZW50LmFkZEVudmlyb25tZW50KGBBbmd1bGFyLyR7VkVSU0lPTi5mdWxsfWApO1xuXG4gICAgLy8gUHJvdmlkZSBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgYHJlc3RvcmVPcmlnaW5hbFVyaWBcbiAgICBpZiAoIW9rdGFBdXRoLm9wdGlvbnMucmVzdG9yZU9yaWdpbmFsVXJpICYmIHJvdXRlciAmJiBsb2NhdGlvbikge1xuICAgICAgb2t0YUF1dGgub3B0aW9ucy5yZXN0b3JlT3JpZ2luYWxVcmkgPSBhc3luYyAoXywgb3JpZ2luYWxVcmk6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICBjb25zdCBiYXNlVXJsID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbiArIGxvY2F0aW9uLnByZXBhcmVFeHRlcm5hbFVybCgnJyk7XG4gICAgICAgIGNvbnN0IHJvdXRlUGF0aCA9IHRvUmVsYXRpdmVVcmwob3JpZ2luYWxVcmkgfHwgJy8nLCBiYXNlVXJsKTtcbiAgICAgICAgcm91dGVyLm5hdmlnYXRlQnlVcmwocm91dGVQYXRoKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gU3RhcnQgc2VydmljZXNcbiAgICBva3RhQXV0aC5zdGFydCgpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVPa3RhQXV0aChcbiAgICBjb25maWdTZXJ2aWNlOiBPa3RhQXV0aENvbmZpZ1NlcnZpY2UsIFxuICAgIHJvdXRlcj86IFJvdXRlciwgXG4gICAgbG9jYXRpb24/OiBMb2NhdGlvblxuICApOiBPa3RhQXV0aCB7XG4gICAgY29uc3QgY29uZmlnID0gY29uZmlnU2VydmljZS5nZXRDb25maWcoKTtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdPa3RhIGNvbmZpZyBpcyBub3QgcHJvdmlkZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IG9rdGFBdXRoIH0gPSBjb25maWc7XG4gICAgaWYgKCFva3RhQXV0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdPa3RhIGNvbmZpZyBzaG91bGQgY29udGFpbiBva3RhQXV0aCcpO1xuICAgIH1cblxuICAgIE9rdGFBdXRoRmFjdG9yeVNlcnZpY2Uuc2V0dXBPa3RhQXV0aChva3RhQXV0aCwgcm91dGVyLCBsb2NhdGlvbik7XG5cbiAgICByZXR1cm4gb2t0YUF1dGg7XG4gIH1cbn0iXX0=