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

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

    • Функции фреймворка
    • Настройки проекта (app/i.php)
    • Настройки composer
    • Глобальные переменные
    • Константы фреймворка
    • Event класс
    • IOCore класс
    • Controller и работа с ними
    • Class и работа с ними
    • Model и работа с ними
    • View и работа с ними
    • Мультиязычность и словарь фраз
    • Bin скрипты и работа с ними
    • Cron скрипты и работа с ними
    • $ioSession и работа с сессией
    • $ioSession->user и работа с пользователем
    • $ioHash и работа с кешем
    • $ioXCache и работа с кешем
    • $iodb и работа с базой данных
  • Frontend

    • Twig шаблонизатор и работа с ним
    • Twig функции
    • Twig фильтры
    • JS плагины
    • Отложенная загрузка JS скриптов
    • Обращение к Model через JS
  • Примеры

    • AutoIncrement, зависящий от полей

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

  • Описание
  • Содержание объекта
    • session
    • uqsession
    • user
    • jwt_token
    • cookie_name
    • isGuest()
    • isCabinet()
    • get_domain()
    • isNoSession()
    • update_cookie_session()
    • refreshPermissions()
    • readJWT()
    • read_cache()
    • write_cache()
    • update_user_data()
    • update_jwt_token()
    • create()
    • getUser()
  • В Twig

Описание

$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
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$paramsarrayМассив параметров.Да

$params:

ПараметрТипОписаниеЗначение по умолчаниюОбязательный
isConsoleintКонсоль ли это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
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$forceboolПринудительное чтение.falseНет
$session_dataarray|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_dataarrayДанные сессии.Да

Пример:

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

update_user_data()

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

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

Пример:

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

update_jwt_token()

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

update_jwt_token(string $jwt_string, array|null $session_data = null): void
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$jwt_stringstringJWT токен.Да
$session_dataarray|nullДанные сессии.nullНет

Пример:

global $ioSession;
$jwt_string = 'jwt_token...';
$ioSession->update_jwt_token($jwt_string, [
    // ...
]);

create()

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

static create(array|null $params = null)): object(IOSession)
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$paramsarray|nullМассив параметров.nullНет

$params:

ПараметрТипОписаниеЗначение по умолчаниюОбязательный
isConsoleintКонсоль ли это0Нет

Пример:

$session = IOSession::create();

getUser()

Получает новый экземпляр класса IOUser.

getUser(): object(IOUser)

Пример:

global $ioSession;
$user = $ioSession->getUser();

В Twig

Данные передаются в twig через глобальную переменную $ioData.

Prev
Cron скрипты и работа с ними
Next
$ioSession->user и работа с пользователем