UNPKG

nnanh3-msal-browser

Version:

Thư viện đã custom của azure masl có common kèm trong

78 lines (75 loc) 3.02 kB
/*! @azure/msal-common v4.5.1 2021-08-02 */ 'use strict'; import { StringUtils } from './StringUtils.js'; import { Constants } from './Constants.js'; import { ClientAuthError } from '../error/ClientAuthError.js'; /* * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ /** * Class which provides helpers for OAuth 2.0 protocol specific values */ var ProtocolUtils = /** @class */ (function () { function ProtocolUtils() { } /** * Appends user state with random guid, or returns random guid. * @param userState * @param randomGuid */ ProtocolUtils.setRequestState = function (cryptoObj, userState, meta) { var libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta); return !StringUtils.isEmpty(userState) ? "" + libraryState + Constants.RESOURCE_DELIM + userState : libraryState; }; /** * Generates the state value used by the common library. * @param randomGuid * @param cryptoObj */ ProtocolUtils.generateLibraryState = function (cryptoObj, meta) { if (!cryptoObj) { throw ClientAuthError.createNoCryptoObjectError("generateLibraryState"); } // Create a state object containing a unique id and the timestamp of the request creation var stateObj = { id: cryptoObj.createNewGuid() }; if (meta) { stateObj.meta = meta; } var stateString = JSON.stringify(stateObj); return cryptoObj.base64Encode(stateString); }; /** * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user. * @param state * @param cryptoObj */ ProtocolUtils.parseRequestState = function (cryptoObj, state) { if (!cryptoObj) { throw ClientAuthError.createNoCryptoObjectError("parseRequestState"); } if (StringUtils.isEmpty(state)) { throw ClientAuthError.createInvalidStateError(state, "Null, undefined or empty state"); } try { // Split the state between library state and user passed state and decode them separately var splitState = state.split(Constants.RESOURCE_DELIM); var libraryState = splitState[0]; var userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : ""; var libraryStateString = cryptoObj.base64Decode(libraryState); var libraryStateObj = JSON.parse(libraryStateString); return { userRequestState: !StringUtils.isEmpty(userState) ? userState : "", libraryState: libraryStateObj }; } catch (e) { throw ClientAuthError.createInvalidStateError(state, e); } }; return ProtocolUtils; }()); export { ProtocolUtils }; //# sourceMappingURL=ProtocolUtils.js.map