BMC IO DocsBMC IO Docs
IO v6
IO v7
Notes
Docs
IO v6
IO v7
Notes
Docs
  • IO Framework v7

    • О фреймворке
    • Что изменилось в 7 версии
    • Структура
    • Доступ к участкам проекта
    • Разворачивание нового проекта
  • Backend

    • Настройки проекта Conf.php
    • Настройки модуля Module.php
    • Настройки composer
    • Функции фреймворка
    • Глобальные переменные
    • Константы фреймворка
    • Event класс
    • IOCore класс
    • Route и работа с ними
    • Class и работа с ними
    • Api model и работа с ними
    • Template и работа с ними
    • Мультиязычность и словарь фраз
    • Bin скрипты и работа с ними
    • Cron скрипты и работа с ними
    • $ioSession и работа с сессией
    • $ioHash и работа с кешем
    • $iodb и работа с базой данных
  • Frontend

    • Twig шаблонизатор и работа с ним
    • Twig функции
    • Twig фильтры
    • Twig контекст
    • Настройка NPM
    • Сборка Frontend составляющей
    • Обращение к Api через JS

IO v6. $ioSession и работа с сессией

  • Описание
  • Содержание объекта
    • uqsession
    • cookie_name
    • session_data
    • jwt_token
    • jwt_token_updated
    • timezone
    • current_account
    • isAuth()
    • getUserInfo()
    • getUserID()
    • getUserLogin()
    • getCurrentAccount()
    • getCurrentCabinet()
    • getCurrentCabinetPkid()
    • findCabinetByAccountPkid()
    • permission()
    • isNoSession()
    • create()
    • update_jwt_token()
    • reloadJWT()
    • readJWT()
    • read_cache()
    • write_cache()
    • update_user_data()
    • update_cookie_session()

Описание

$ioSession - глобальная переменная-объект, хранящая в себе данные о пользователе (авторизованном и неавторизованном), а также данные его аккаунтов и их полномочия. Служит для обращения к сессии пользователя.

Содержание объекта

uqsession

Содержит уникальную сессию пользователя на 5 лет.

string|null $uqsession = null

Пример:

global $ioSession;
$uqsession = $ioSession->uqsession;

cookie_name

Содержит название cookie ключа для хранения JWT токена.

string|null $cookie_name = null

Пример:

global $ioSession;
$cookie_name = $ioSession->cookie_name;
// "bmc_jwt"

session_data

Содержит данные всех переменных данного объекта. Вспомогательная переменная.

array|null $session_data = null

jwt_token

Содержит JWT токен пользователя.

object(JWTToken)|null $jwt_token = null

Пример:

global $ioSession;
$jwt_token = $ioSession->jwt_token;
/*
"user_id": (string) "123"
"login": (string) "user"
"session": (string) "sQ6DaISEaf7VO...A5s1742539153"
"expired": (int) 1742665357
"created": (int) 1742578957
"str": (string) "eyJhbGciOiJS...4ZY1QWMiLA=="
*/

jwt_token_updated

Флаг обновления JWT токена. Вспомогательная переменная.

bool $jwt_token_updated = false

Пример:

global $ioSession;
$ret = $ioSession->jwt_token_updated;

timezone

Содержит временную зону (timezone) пользователя. По умолчанию "Asia/Almaty".

string|null $timezone = null

Пример:

global $ioSession;
$timezone = $ioSession->timezone;
// "Asia/Almaty"

current_account

Содержит pkid текущего аккаунта.

В IO6 переменная называлась $ioSession->user->account.

bigint|int $current_account = 0

Пример:

global $ioSession;
$account = $ioSession->current_account;
// 1234567890123456

isAuth()

Проверяет, авторизован ли пользователь.

В IO6 метод назывался $ioSession->user->isGuest().

isAuth(): bool

Пример:

global $ioSession;
$isAuth = $ioSession->isAuth();

getUserInfo()

Возвращает данные текущего пользователя.

getUserInfo(): array|null

Пример:

global $ioSession;
$userInfo = $ioSession->getUserInfo();

getUserID()

Возвращает ID текущего пользователя.

getUserID(): int|null

Пример:

global $ioSession;
$user_id = $ioSession->getUserID();

getUserLogin()

Возвращает логин текущего пользователя.

getUserLogin(): string|null

Пример:

global $ioSession;
$user_login = $ioSession->getUserLogin();

getCurrentAccount()

Возвращает текущий аккаунт пользователя.

getCurrentAccount(): bigint|int|null

Пример:

global $ioSession;
$current_account = $ioSession->getCurrentAccount();

getCurrentCabinet()

Возвращает данные текущего кабинета пользователя (данные компании).

getCurrentCabinet(): bigint|int|null

Пример:

global $ioSession;
$cabinet = $ioSession->getCurrentCabinet();

getCurrentCabinetPkid()

Возвращает pkid текущего кабинета пользователя (pkid компании).

В IO6 метод назывался $ioSession->user->getCompanyID().

getCurrentCabinetPkid(): bigint|int|null

Пример:

global $ioSession;
$cabinet_pkid = $ioSession->getCurrentCabinetPkid();

findCabinetByAccountPkid()

Возвращает данные кабинета указанного аккаунта пользователя.

findCabinetByAccountPkid(string|bigint|int|null $account_pkid): array|null
Аргумент функцииТипОписаниеОбязательный
$accountstring|bigint|int|nullpkid аккаунта пользователя.Да

Пример:

global $ioSession;
$account = 1234567890123456;
$cabinet = $ioSession->findCabinetByAccountPkid($account);

permission()

Проверяет, есть ли у указанного либо текущего аккаунта пользователя указанное полномочие.

permission(string $permission, string|bigint|int|null $account_pkid = null): bool
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$permissionstringApiname полномочияДа
$account_pkidstring|bigint|int|nullpkid аккаунта пользователя.nullНет

Формат полномочий, выдаваемых через сервис BMC CMS:
self.cms.<site_pkid>.perms

Пример:

global $ioSession;
$ret = $ioSession->permission('system.admin');

isNoSession()

Проверяет на бота, консоль, шлюз.

static isNoSession(): bool

Пример:

$ret = IOSession::isNoSession();

create()

Создает сессию.

static create(): object(IOSession)

Пример:

$session = IOSession::create();

update_jwt_token()

Обновляет JWT токен.

update_jwt_token(string $jwt_string): void
Аргумент функцииТипОписаниеОбязательный
$jwt_stringstringJWT токен.Да

Пример:

global $ioSession;
$jwt_string = 'jwt_token...';
$ioSession->update_jwt_token($jwt_string);

reloadJWT()

Обновляет JWT токен.

reloadJWT(): void

Пример:

global $ioSession;
$ioSession->reloadJWT();

readJWT()

Чтение JWT токена в переменную jwt_token данного объекта.

Возвращает true, если токен был успешно прочитан.

readJWT(): bool

Пример:

global $ioSession;
$ioSession->readJWT();

read_cache()

Чтение JWT токена из кэша.

Возвращает true, если токен был успешно прочитан из кэша.

read_cache(): bool

Пример:

global $ioSession;
$ioSession->read_cache();

write_cache()

Запись JWT токена в кэш.

write_cache(array $session_data): bool
Аргумент функцииТипОписаниеОбязательный
$session_dataarrayДанные сессии.Да

Пример:

global $ioSession;
$ioSession->write_cache([
    // ...
]);

update_user_data()

Обновляет данные пользователя.

update_user_data(array $session_data): void
Аргумент функцииТипОписаниеОбязательный
$session_dataarrayДанные сессии.Да

Пример:

global $ioSession;
$ioSession->update_user_data([
    // ...
]);

update_cookie_session()

Обновление cookie у сессии.

update_cookie_session(bool $force = false): void
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$forceboolПринудительное обновление.falseНет

Пример:

global $ioSession;
$ioSession->update_cookie_session();
Prev
Cron скрипты и работа с ними
Next
$ioHash и работа с кешем