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;
$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
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$account | string|bigint|int|null | pkid аккаунта пользователя. | Да |
Пример:
global $ioSession;
$account = 1234567890123456;
$cabinet = $ioSession->findCabinetByAccountPkid($account);
permission()
Проверяет, есть ли у указанного либо текущего аккаунта пользователя указанное полномочие.
permission(string $permission, string|bigint|int|null $account_pkid = null): bool
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$permission | string | Apiname полномочия | Да | |
$account_pkid | string|bigint|int|null | pkid аккаунта пользователя. | 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_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();