UNPKG

matrix-react-sdk

Version:
88 lines (80 loc) 8.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.persistOidcAuthenticatedSettings = exports.getStoredOidcTokenIssuer = exports.getStoredOidcIdTokenClaims = exports.getStoredOidcIdToken = exports.getStoredOidcClientId = void 0; var _matrix = require("matrix-js-sdk/src/matrix"); /* Copyright 2024 New Vector Ltd. Copyright 2023 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ const clientIdStorageKey = "mx_oidc_client_id"; const tokenIssuerStorageKey = "mx_oidc_token_issuer"; const idTokenStorageKey = "mx_oidc_id_token"; /** * @deprecated in favour of using idTokenStorageKey */ const idTokenClaimsStorageKey = "mx_oidc_id_token_claims"; /** * Persists oidc clientId and issuer in local storage * Only set after successful authentication * @param clientId * @param issuer * @param idToken * @param idTokenClaims */ const persistOidcAuthenticatedSettings = (clientId, issuer, idToken) => { localStorage.setItem(clientIdStorageKey, clientId); localStorage.setItem(tokenIssuerStorageKey, issuer); localStorage.setItem(idTokenStorageKey, idToken); }; /** * Retrieve stored oidc issuer from local storage * When user has token from OIDC issuer, this will be set * @returns issuer or undefined */ exports.persistOidcAuthenticatedSettings = persistOidcAuthenticatedSettings; const getStoredOidcTokenIssuer = () => { return localStorage.getItem(tokenIssuerStorageKey) ?? undefined; }; /** * Retrieves stored oidc client id from local storage * @returns clientId * @throws when clientId is not found in local storage */ exports.getStoredOidcTokenIssuer = getStoredOidcTokenIssuer; const getStoredOidcClientId = () => { const clientId = localStorage.getItem(clientIdStorageKey); if (!clientId) { throw new Error("Oidc client id not found in storage"); } return clientId; }; /** * Retrieve stored id token claims from stored id token or local storage * @returns idTokenClaims or undefined */ exports.getStoredOidcClientId = getStoredOidcClientId; const getStoredOidcIdTokenClaims = () => { const idToken = getStoredOidcIdToken(); if (idToken) { return (0, _matrix.decodeIdToken)(idToken); } const idTokenClaims = localStorage.getItem(idTokenClaimsStorageKey); if (!idTokenClaims) { return; } return JSON.parse(idTokenClaims); }; /** * Retrieve stored id token from local storage * @returns idToken or undefined */ exports.getStoredOidcIdTokenClaims = getStoredOidcIdTokenClaims; const getStoredOidcIdToken = () => { return localStorage.getItem(idTokenStorageKey) ?? undefined; }; exports.getStoredOidcIdToken = getStoredOidcIdToken; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWF0cml4IiwicmVxdWlyZSIsImNsaWVudElkU3RvcmFnZUtleSIsInRva2VuSXNzdWVyU3RvcmFnZUtleSIsImlkVG9rZW5TdG9yYWdlS2V5IiwiaWRUb2tlbkNsYWltc1N0b3JhZ2VLZXkiLCJwZXJzaXN0T2lkY0F1dGhlbnRpY2F0ZWRTZXR0aW5ncyIsImNsaWVudElkIiwiaXNzdWVyIiwiaWRUb2tlbiIsImxvY2FsU3RvcmFnZSIsInNldEl0ZW0iLCJleHBvcnRzIiwiZ2V0U3RvcmVkT2lkY1Rva2VuSXNzdWVyIiwiZ2V0SXRlbSIsInVuZGVmaW5lZCIsImdldFN0b3JlZE9pZGNDbGllbnRJZCIsIkVycm9yIiwiZ2V0U3RvcmVkT2lkY0lkVG9rZW5DbGFpbXMiLCJnZXRTdG9yZWRPaWRjSWRUb2tlbiIsImRlY29kZUlkVG9rZW4iLCJpZFRva2VuQ2xhaW1zIiwiSlNPTiIsInBhcnNlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL29pZGMvcGVyc2lzdE9pZGNTZXR0aW5ncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyBJZFRva2VuQ2xhaW1zIH0gZnJvbSBcIm9pZGMtY2xpZW50LXRzXCI7XG5pbXBvcnQgeyBkZWNvZGVJZFRva2VuIH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21hdHJpeFwiO1xuXG5jb25zdCBjbGllbnRJZFN0b3JhZ2VLZXkgPSBcIm14X29pZGNfY2xpZW50X2lkXCI7XG5jb25zdCB0b2tlbklzc3VlclN0b3JhZ2VLZXkgPSBcIm14X29pZGNfdG9rZW5faXNzdWVyXCI7XG5jb25zdCBpZFRva2VuU3RvcmFnZUtleSA9IFwibXhfb2lkY19pZF90b2tlblwiO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgdXNpbmcgaWRUb2tlblN0b3JhZ2VLZXlcbiAqL1xuY29uc3QgaWRUb2tlbkNsYWltc1N0b3JhZ2VLZXkgPSBcIm14X29pZGNfaWRfdG9rZW5fY2xhaW1zXCI7XG5cbi8qKlxuICogUGVyc2lzdHMgb2lkYyBjbGllbnRJZCBhbmQgaXNzdWVyIGluIGxvY2FsIHN0b3JhZ2VcbiAqIE9ubHkgc2V0IGFmdGVyIHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb25cbiAqIEBwYXJhbSBjbGllbnRJZFxuICogQHBhcmFtIGlzc3VlclxuICogQHBhcmFtIGlkVG9rZW5cbiAqIEBwYXJhbSBpZFRva2VuQ2xhaW1zXG4gKi9cbmV4cG9ydCBjb25zdCBwZXJzaXN0T2lkY0F1dGhlbnRpY2F0ZWRTZXR0aW5ncyA9IChjbGllbnRJZDogc3RyaW5nLCBpc3N1ZXI6IHN0cmluZywgaWRUb2tlbjogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oY2xpZW50SWRTdG9yYWdlS2V5LCBjbGllbnRJZCk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odG9rZW5Jc3N1ZXJTdG9yYWdlS2V5LCBpc3N1ZXIpO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGlkVG9rZW5TdG9yYWdlS2V5LCBpZFRva2VuKTtcbn07XG5cbi8qKlxuICogUmV0cmlldmUgc3RvcmVkIG9pZGMgaXNzdWVyIGZyb20gbG9jYWwgc3RvcmFnZVxuICogV2hlbiB1c2VyIGhhcyB0b2tlbiBmcm9tIE9JREMgaXNzdWVyLCB0aGlzIHdpbGwgYmUgc2V0XG4gKiBAcmV0dXJucyBpc3N1ZXIgb3IgdW5kZWZpbmVkXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTdG9yZWRPaWRjVG9rZW5Jc3N1ZXIgPSAoKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odG9rZW5Jc3N1ZXJTdG9yYWdlS2V5KSA/PyB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIFJldHJpZXZlcyBzdG9yZWQgb2lkYyBjbGllbnQgaWQgZnJvbSBsb2NhbCBzdG9yYWdlXG4gKiBAcmV0dXJucyBjbGllbnRJZFxuICogQHRocm93cyB3aGVuIGNsaWVudElkIGlzIG5vdCBmb3VuZCBpbiBsb2NhbCBzdG9yYWdlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTdG9yZWRPaWRjQ2xpZW50SWQgPSAoKTogc3RyaW5nID0+IHtcbiAgICBjb25zdCBjbGllbnRJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGNsaWVudElkU3RvcmFnZUtleSk7XG4gICAgaWYgKCFjbGllbnRJZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPaWRjIGNsaWVudCBpZCBub3QgZm91bmQgaW4gc3RvcmFnZVwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsaWVudElkO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZSBzdG9yZWQgaWQgdG9rZW4gY2xhaW1zIGZyb20gc3RvcmVkIGlkIHRva2VuIG9yIGxvY2FsIHN0b3JhZ2VcbiAqIEByZXR1cm5zIGlkVG9rZW5DbGFpbXMgb3IgdW5kZWZpbmVkXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTdG9yZWRPaWRjSWRUb2tlbkNsYWltcyA9ICgpOiBJZFRva2VuQ2xhaW1zIHwgdW5kZWZpbmVkID0+IHtcbiAgICBjb25zdCBpZFRva2VuID0gZ2V0U3RvcmVkT2lkY0lkVG9rZW4oKTtcbiAgICBpZiAoaWRUb2tlbikge1xuICAgICAgICByZXR1cm4gZGVjb2RlSWRUb2tlbihpZFRva2VuKTtcbiAgICB9XG5cbiAgICBjb25zdCBpZFRva2VuQ2xhaW1zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oaWRUb2tlbkNsYWltc1N0b3JhZ2VLZXkpO1xuICAgIGlmICghaWRUb2tlbkNsYWltcykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiBKU09OLnBhcnNlKGlkVG9rZW5DbGFpbXMpIGFzIElkVG9rZW5DbGFpbXM7XG59O1xuXG4vKipcbiAqIFJldHJpZXZlIHN0b3JlZCBpZCB0b2tlbiBmcm9tIGxvY2FsIHN0b3JhZ2VcbiAqIEByZXR1cm5zIGlkVG9rZW4gb3IgdW5kZWZpbmVkXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTdG9yZWRPaWRjSWRUb2tlbiA9ICgpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShpZFRva2VuU3RvcmFnZUtleSkgPz8gdW5kZWZpbmVkO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBU0EsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBS0EsTUFBTUMsa0JBQWtCLEdBQUcsbUJBQW1CO0FBQzlDLE1BQU1DLHFCQUFxQixHQUFHLHNCQUFzQjtBQUNwRCxNQUFNQyxpQkFBaUIsR0FBRyxrQkFBa0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0EsTUFBTUMsdUJBQXVCLEdBQUcseUJBQXlCOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUMsZ0NBQWdDLEdBQUdBLENBQUNDLFFBQWdCLEVBQUVDLE1BQWMsRUFBRUMsT0FBZSxLQUFXO0VBQ3pHQyxZQUFZLENBQUNDLE9BQU8sQ0FBQ1Qsa0JBQWtCLEVBQUVLLFFBQVEsQ0FBQztFQUNsREcsWUFBWSxDQUFDQyxPQUFPLENBQUNSLHFCQUFxQixFQUFFSyxNQUFNLENBQUM7RUFDbkRFLFlBQVksQ0FBQ0MsT0FBTyxDQUFDUCxpQkFBaUIsRUFBRUssT0FBTyxDQUFDO0FBQ3BELENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBRyxPQUFBLENBQUFOLGdDQUFBLEdBQUFBLGdDQUFBO0FBS08sTUFBTU8sd0JBQXdCLEdBQUdBLENBQUEsS0FBMEI7RUFDOUQsT0FBT0gsWUFBWSxDQUFDSSxPQUFPLENBQUNYLHFCQUFxQixDQUFDLElBQUlZLFNBQVM7QUFDbkUsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkFILE9BQUEsQ0FBQUMsd0JBQUEsR0FBQUEsd0JBQUE7QUFLTyxNQUFNRyxxQkFBcUIsR0FBR0EsQ0FBQSxLQUFjO0VBQy9DLE1BQU1ULFFBQVEsR0FBR0csWUFBWSxDQUFDSSxPQUFPLENBQUNaLGtCQUFrQixDQUFDO0VBQ3pELElBQUksQ0FBQ0ssUUFBUSxFQUFFO0lBQ1gsTUFBTSxJQUFJVSxLQUFLLENBQUMscUNBQXFDLENBQUM7RUFDMUQ7RUFDQSxPQUFPVixRQUFRO0FBQ25CLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFIQUssT0FBQSxDQUFBSSxxQkFBQSxHQUFBQSxxQkFBQTtBQUlPLE1BQU1FLDBCQUEwQixHQUFHQSxDQUFBLEtBQWlDO0VBQ3ZFLE1BQU1ULE9BQU8sR0FBR1Usb0JBQW9CLENBQUMsQ0FBQztFQUN0QyxJQUFJVixPQUFPLEVBQUU7SUFDVCxPQUFPLElBQUFXLHFCQUFhLEVBQUNYLE9BQU8sQ0FBQztFQUNqQztFQUVBLE1BQU1ZLGFBQWEsR0FBR1gsWUFBWSxDQUFDSSxPQUFPLENBQUNULHVCQUF1QixDQUFDO0VBQ25FLElBQUksQ0FBQ2dCLGFBQWEsRUFBRTtJQUNoQjtFQUNKO0VBQ0EsT0FBT0MsSUFBSSxDQUFDQyxLQUFLLENBQUNGLGFBQWEsQ0FBQztBQUNwQyxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBSEFULE9BQUEsQ0FBQU0sMEJBQUEsR0FBQUEsMEJBQUE7QUFJTyxNQUFNQyxvQkFBb0IsR0FBR0EsQ0FBQSxLQUEwQjtFQUMxRCxPQUFPVCxZQUFZLENBQUNJLE9BQU8sQ0FBQ1YsaUJBQWlCLENBQUMsSUFBSVcsU0FBUztBQUMvRCxDQUFDO0FBQUNILE9BQUEsQ0FBQU8sb0JBQUEsR0FBQUEsb0JBQUEiLCJpZ25vcmVMaXN0IjpbXX0=