@bitrix24/b24jssdk
Version:
Bitrix24 REST API JavaScript SDK
1 lines • 5.22 kB
Source Map (JSON)
{"version":3,"file":"auth.mjs","sources":["../../../src/frame/auth.ts"],"sourcesContent":["import type { AppFrame } from './frame'\nimport type { MessageManager } from './message'\nimport type { AuthActions, AuthData, RefreshAuthData, MessageInitData } from '../types/auth'\nimport type { ApiVersion } from '../types/b24'\nimport { MessageCommands } from './message'\n\n/**\n * Authorization Manager\n */\nexport class AuthManager implements AuthActions {\n #accessToken: null | string = null\n #refreshId: null | string = null\n #authExpires: number = 0\n #authExpiresIn: number = 0\n #memberId: null | string = null\n\n #isAdmin: boolean = false\n\n #appFrame: AppFrame\n #messageManager: MessageManager\n\n constructor(\n appFrame: AppFrame,\n messageManager: MessageManager\n ) {\n this.#appFrame = appFrame\n this.#messageManager = messageManager\n }\n\n /**\n * Initializes the data received from the parent window message.\n * @param data\n */\n public initData(data: MessageInitData): AuthManager {\n if (data.AUTH_ID) {\n this.#accessToken = data.AUTH_ID\n this.#refreshId = data.REFRESH_ID\n this.#authExpiresIn = Number.parseInt(data.AUTH_EXPIRES)\n this.#authExpires = Date.now() + this.#authExpiresIn * 1_000\n\n this.#isAdmin = data.IS_ADMIN\n this.#memberId = data.MEMBER_ID || ''\n }\n\n return this\n }\n\n /**\n * Returns authorization data\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-functions/bx24-get-auth.html\n */\n public getAuthData(): false | AuthData {\n return this.#authExpires > Date.now()\n ? ({\n access_token: this.#accessToken,\n refresh_token: this.#refreshId,\n expires: this.#authExpires / 1_000,\n expires_in: this.#authExpiresIn,\n domain: this.#appFrame.getTargetOrigin(),\n member_id: this.#memberId\n } as AuthData)\n : false\n }\n\n /**\n * Updates authorization data through the parent window\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-functions/bx24-refresh-auth.html\n */\n public async refreshAuth(): Promise<AuthData> {\n return this.#messageManager\n .send(MessageCommands.refreshAuth, {})\n .then((data: RefreshAuthData) => {\n this.#accessToken = data.AUTH_ID\n this.#refreshId = data.REFRESH_ID\n this.#authExpires = Date.now() + Number.parseInt(data.AUTH_EXPIRES) * 1_000\n\n return Promise.resolve(this.getAuthData() as AuthData)\n })\n }\n\n public getUniq(prefix: string): string {\n return [prefix, this.#memberId || ''].join('_')\n }\n\n /**\n * Determines whether the current user has administrator rights\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-is-admin.html\n */\n get isAdmin(): boolean {\n return this.#isAdmin\n }\n\n /**\n * @inheritDoc\n */\n public getTargetOrigin(): string {\n return this.#appFrame.getTargetOrigin()\n }\n\n /**\n * @inheritDoc\n */\n public getTargetOriginWithPath(): Map<ApiVersion, string> {\n return this.#appFrame.getTargetOriginWithPath()\n }\n}\n"],"names":[],"mappings":"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"}