UNPKG

@bitrix24/b24jssdk

Version:

Bitrix24 REST API JavaScript SDK

99 lines (96 loc) 2.73 kB
/** * @package @bitrix24/b24jssdk * @version 1.0.1 * @copyright (c) 2026 Bitrix24 * @license MIT * @see https://github.com/bitrix24/b24jssdk * @see https://bitrix24.github.io/b24jssdk/ */ import { MessageCommands } from './message/commands.mjs'; var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); class AuthManager { static { __name(this, "AuthManager"); } #accessToken = null; #refreshId = null; #authExpires = 0; #authExpiresIn = 0; #memberId = null; #isAdmin = false; #appFrame; #messageManager; constructor(appFrame, messageManager) { this.#appFrame = appFrame; this.#messageManager = messageManager; } /** * Initializes the data received from the parent window message. * @param data */ initData(data) { if (data.AUTH_ID) { this.#accessToken = data.AUTH_ID; this.#refreshId = data.REFRESH_ID; this.#authExpiresIn = Number.parseInt(data.AUTH_EXPIRES); this.#authExpires = Date.now() + this.#authExpiresIn * 1e3; this.#isAdmin = data.IS_ADMIN; this.#memberId = data.MEMBER_ID || ""; } return this; } /** * Returns authorization data * * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-functions/bx24-get-auth.html */ getAuthData() { return this.#authExpires > Date.now() ? { access_token: this.#accessToken, refresh_token: this.#refreshId, expires: this.#authExpires / 1e3, expires_in: this.#authExpiresIn, domain: this.#appFrame.getTargetOrigin(), member_id: this.#memberId } : false; } /** * Updates authorization data through the parent window * * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-functions/bx24-refresh-auth.html */ async refreshAuth() { return this.#messageManager.send(MessageCommands.refreshAuth, {}).then((data) => { this.#accessToken = data.AUTH_ID; this.#refreshId = data.REFRESH_ID; this.#authExpires = Date.now() + Number.parseInt(data.AUTH_EXPIRES) * 1e3; return Promise.resolve(this.getAuthData()); }); } getUniq(prefix) { return [prefix, this.#memberId || ""].join("_"); } /** * Determines whether the current user has administrator rights * * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-is-admin.html */ get isAdmin() { return this.#isAdmin; } /** * @inheritDoc */ getTargetOrigin() { return this.#appFrame.getTargetOrigin(); } /** * @inheritDoc */ getTargetOriginWithPath() { return this.#appFrame.getTargetOriginWithPath(); } } export { AuthManager }; //# sourceMappingURL=auth.mjs.map