IO v6. $ioSession и работа с сессией
Описание
$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;
$userLogin = $ioSession->getUserLogin();
getAvatarInfo()
Возвращает информацию об аватарке текущего пользователя.
getAvatarInfo(): array|null
Пример:
global $ioSession;
$avatar = $ioSession->getAvatarInfo();
getDeviceId()
Возвращает ID устройства текущего пользователя.
getDeviceId(): string|null
Пример:
global $ioSession;
$deviceId = $ioSession->getDeviceId();
getCurrentAccount()
Возвращает текущий аккаунт пользователя.
getCurrentAccount(): int|null
Пример:
global $ioSession;
$current_account = $ioSession->getCurrentAccount();
setCurrentAccount()
Устанавливает текущий аккаунт пользователя.
setCurrentAccount(
string|int $account_pkid
): bool
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$account | string|int|null | pkid аккаунта пользователя. | Да |
Пример:
global $ioSession;
$account_pkid = 1234567890123456;
$res = $ioSession->setCurrentAccount($account_pkid);
getCabinets()
Возвращает список всех кабинетов пользователя (список компаний).
getCabinets(): array
Пример:
global $ioSession;
$cabinets = $ioSession->getCabinets();
getCurrentCabinet()
Возвращает данные текущего кабинета пользователя (данные компании).
getCurrentCabinet(): int|null
Пример:
global $ioSession;
$cabinet = $ioSession->getCurrentCabinet();
getCurrentCabinetPkid()
Возвращает pkid текущего кабинета пользователя (pkid компании).
В IO6 метод назывался $ioSession->user->getCompanyID().
getCurrentCabinetPkid(): int|null
Пример:
global $ioSession;
$cabinet_pkid = $ioSession->getCurrentCabinetPkid();
findCabinetByAccountPkid()
Возвращает данные кабинета указанного аккаунта пользователя.
findCabinetByAccountPkid(
string|int|null $account_pkid
): array|null
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$account | string|int|null | pkid аккаунта пользователя. | Да |
Пример:
global $ioSession;
$account = 1234567890123456;
$cabinet = $ioSession->findCabinetByAccountPkid($account);
getSettings()
Получает настройки пользователя по ключу
getSettings(
string $key = null
): string|int|null
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$key | string | название параметра настройки. | Да |
Пример:
global $ioSession;
$theme = $ioSession->getSettings('theme');
permission()
Проверяет, есть ли у указанного либо текущего аккаунта пользователя указанное полномочие.
permission(
string $permission,
string|int|null $account_pkid = null
): bool
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$permission | string | Apiname полномочия | Да | |
$account_pkid | string|int|null | pkid аккаунта пользователя. | null | Нет |
Формат полномочий, выдаваемых через сервис BMC CMS:self.cms.<site_pkid>.perms
Пример:
global $ioSession;
$ret = $ioSession->permission('system.admin');
permissionAny()
Проверяет, есть ли у указанного либо текущего аккаунта пользователя любое из указанных полномочий.
permissionAny(
array $permissions,
string|int|null $account_pkid = null
): bool
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$permissions | array | Массив apiname полномочий | Да | |
$account_pkid | string|int|null | pkid аккаунта пользователя. | null | Нет |
Формат полномочий, выдаваемых через сервис BMC CMS:self.cms.<site_pkid>.perms
Пример:
global $ioSession;
$ret = $ioSession->permissionAny(['system.admin', 'system.moderator']);
permissionAll()
Проверяет, есть ли у указанного либо текущего аккаунта пользователя все указанные полномочия.
permissionAny(
array $permissions,
string|int|null $account_pkid = null
): bool
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$permissions | array | Массив apiname полномочий | Да | |
$account_pkid | string|int|null | pkid аккаунта пользователя. | null | Нет |
Формат полномочий, выдаваемых через сервис BMC CMS:self.cms.<site_pkid>.perms
Пример:
global $ioSession;
$ret = $ioSession->permissionAll(['system.admin', 'system.moderator']);
isNoSession()
Проверяет на бота, консоль, шлюз.
static isNoSession(): bool
Пример:
$ret = \IO\Session::isNoSession();
create()
Создает сессию.
static create(): object(IOSession)
Пример:
$session = \IO\Session::create();
update_jwt_token()
Обновляет JWT токен.
update_jwt_token(
string $jwt_string
): void
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$jwt_string | string | JWT токен. | Да |
Пример:
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_data | array | Данные сессии. | Да |
Пример:
global $ioSession;
$ioSession->write_cache([
// ...
]);
update_user_data()
Обновляет данные пользователя.
update_user_data(
array $session_data
): void
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$session_data | array | Данные сессии. | Да |
Пример:
global $ioSession;
$ioSession->update_user_data([
// ...
]);
update_cookie_session()
Обновление cookie у сессии.
update_cookie_session(
bool $force = false
): void
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$force | bool | Принудительное обновление. | false | Нет |
Пример:
global $ioSession;
$ioSession->update_cookie_session();
destroy()
Очистка сессии (logout).
destroy(): void
Пример:
global $ioSession;
$ioSession->destroy();