UNPKG

odp-sdk

Version:

Ocean Data Platform JavaScript SDK

119 lines 4.78 kB
"use strict"; 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()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Auth = void 0; const msal_browser_1 = require("@azure/msal-browser"); const loglevel_1 = __importDefault(require("loglevel")); const loggerCallback = (level, message, containsPii) => { if (containsPii) { return; } switch (level) { case msal_browser_1.LogLevel.Error: loglevel_1.default.error(message); return; case msal_browser_1.LogLevel.Info: loglevel_1.default.info(message); return; case msal_browser_1.LogLevel.Verbose: loglevel_1.default.debug(message); return; case msal_browser_1.LogLevel.Warning: loglevel_1.default.warn(message); return; } }; class Auth { constructor(authConfig) { this.logout = () => { return this._msalInstance.logoutRedirect(); }; this.getToken = (scope) => __awaiter(this, void 0, void 0, function* () { const account = this._msalInstance.getAllAccounts()[0]; const request = { account, scopes: scope, }; return new Promise((resolve, reject) => { this._msalInstance.acquireTokenSilent(request).then(res => { if (res.accessToken) { resolve(res.accessToken); } else { reject(new Error("No token acquired...")); } }); }); }); this.handleRedirectAuth = () => __awaiter(this, void 0, void 0, function* () { try { const redirectResponse = yield this._msalInstance.handleRedirectPromise(); if (redirectResponse !== null) { loglevel_1.default.debug("Auth: Got redirect token"); return redirectResponse; } } catch (error) { loglevel_1.default.error(error); return; } const account = this._msalInstance.getAllAccounts()[0]; const accessTokenRequest = { account, scopes: ["openid", "profile", "email"], }; const loginWithRedirect = () => { this._msalInstance.acquireTokenRedirect(accessTokenRequest); }; loglevel_1.default.debug("Auth: Acquiring access token", accessTokenRequest); if (!account) { loginWithRedirect(); } try { const accessTokenResponse = yield this._msalInstance.acquireTokenSilent(accessTokenRequest); loglevel_1.default.debug("Auth: Got silent token"); return accessTokenResponse; } catch (error) { if (error instanceof msal_browser_1.InteractionRequiredAuthError) { loglevel_1.default.debug("using fallback"); loginWithRedirect(); return; } loglevel_1.default.error("Auth: Failed to get silent token"); loglevel_1.default.error(error); } }); this._msalInstance = new msal_browser_1.PublicClientApplication({ auth: authConfig, cache: { cacheLocation: "sessionStorage", storeAuthStateInCookie: false, secureCookies: false, }, system: { loggerOptions: { piiLoggingEnabled: false, loggerCallback, }, windowHashTimeout: 60000, iframeHashTimeout: 6000, loadFrameTimeout: 0, asyncPopups: false, }, }); } } exports.Auth = Auth; //# sourceMappingURL=auth.js.map