@bitrix24/b24jssdk
Version:
Bitrix24 REST API JavaScript SDK
99 lines (96 loc) • 2.73 kB
JavaScript
/**
* @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