IO v6. $ioSession и работа с сессией
Описание
$ioSession - глобальная переменная-объект, хранящая в себе данные о пользователе (авторизованном и неавторизованном), а также данные его аккаунтов и их полномочия. Служит для обращения к сессии пользователя.
Содержание объекта
session
Содержит текущую сессию пользователя.
string|null $session = null
Пример:
global $ioSession;
$session = $ioSession->session;
uqsession
Содержит уникальную сессию пользователя на 5 лет.
string|null $uqsession = null
Пример:
global $ioSession;
$uqsession = $ioSession->uqsession;
user
Содержит объект класса IOUser.
object(IOUser)|null $user = null
Пример:
global $ioSession;
$user = $ioSession->user;
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=="
*/
cookie_name
Содержит название cookie ключа для хранения JWT токена.
string $cookie_name = ''
Пример:
global $ioSession;
$cookie_name = $ioSession->cookie_name;
// "bmc_jwt"
isGuest()
Проверяет, является ли пользователь гостем. То же самое, что и $ioSession->user->isGuest().
isGuest(): bool
Пример:
global $ioSession;
$isGuest = $ioSession->isGuest();
isCabinet()
Проверяет, является ли текущий проект кабинетом.
isCabinet(): bool
Пример:
global $ioSession;
$isCabinet = $ioSession->isCabinet();
get_domain()
Возвращает домен.
static get_domain(): string
Пример:
$domain = IOSession::get_domain();
isNoSession()
Проверяет на бота, консоль, шлюз.
static isNoSession(array $params): bool
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$params | array | Массив параметров. | Да |
$params:
| Параметр | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
isConsole | int | Консоль ли это | 0 | Нет |
Пример:
$ret = IOSession::isNoSession([
'isConsole' => 1,
]);
update_cookie_session()
Обновляет cookie у сессии.
update_cookie_session(): void
Пример:
global $ioSession;
$ioSession->update_cookie_session();
refreshPermissions()
Обновляет полномочия, пользовательские данные.
refreshPermissions(): void
Пример:
global $ioSession;
$ioSession->refreshPermissions();
readJWT()
Читает JWT токен в переменную jwt_token данного объекта.
Возвращает true, если токен был успешно прочитан.
readJWT(bool $force = false, array|null $session_data = null): bool
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$force | bool | Принудительное чтение. | false | Нет |
$session_data | array|null | Данные сессии (нет необходимости передавать, в теле функции не используется). | null | Нет |
Пример:
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): bool|void
| Аргумент функции | Тип | Описание | Обязательный |
|---|---|---|---|
$session_data | array | Данные сессии. | Да |
Пример:
global $ioSession;
$ioSession->update_user_data([
// ...
]);
update_jwt_token()
Обновляет JWT токен.
update_jwt_token(string $jwt_string, array|null $session_data = null): void
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$jwt_string | string | JWT токен. | Да | |
$session_data | array|null | Данные сессии. | null | Нет |
Пример:
global $ioSession;
$jwt_string = 'jwt_token...';
$ioSession->update_jwt_token($jwt_string, [
// ...
]);
create()
Создает сессию.
static create(array|null $params = null)): object(IOSession)
| Аргумент функции | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
$params | array|null | Массив параметров. | null | Нет |
$params:
| Параметр | Тип | Описание | Значение по умолчанию | Обязательный |
|---|---|---|---|---|
isConsole | int | Консоль ли это | 0 | Нет |
Пример:
$session = IOSession::create();
getUser()
Получает новый экземпляр класса IOUser.
getUser(): object(IOUser)
Пример:
global $ioSession;
$user = $ioSession->getUser();
В Twig
Данные передаются в twig через глобальную переменную $ioData.