НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
114 of 152 menu

Таблица oc_api_session

Таблица oc_api_session играет ключевую роль в работе REST API OpenCart. Она хранит информацию о текущих активных сессиях, создаваемых для авторизованного доступа внешних приложений, мобильных клиентов или других сервисов к данным магазина.

Поля

Поле Тип данных Описание
api_session_id int Уникальный идентификатор сессии API. Первичный ключ таблицы с автоинкрементом.
api_id int Внешний ключ, связывающий сессию с конкретным API-пользователем. Ссылается на таблицу oc_api.
session_id varchar(32) Уникальный идентификатор сессии (Session ID), который генерируется системой при успешной аутентификации. Этот токен используется в заголовках последующих запросов для авторизации.
ip varchar(40) IP-адрес клиента, с которого была создана сессия. Используется для дополнительной безопасности и отслеживания источника запросов.
date_added datetime Дата и время создания сессии.
date_modified datetime Дата и время последнего использования (модификации) сессии. Обновляется при каждом обращении к API с использованием данного Session ID.

Как это работает

Для использования API в OpenCart необходимо сначала создать API-пользователя в админ-панели (Система → Пользователи → API). После создания API-пользователя внешнее приложение может инициировать процесс аутентификации.

Процесс работы выглядит следующим образом:

1. Клиентский скрипт или приложение отправляет POST-запрос на эндпоинт аутентификации API (например, /index.php?route=api/login), передавая свои учетные данные (ключ API).

2. При успешной проверке ключа система генерирует уникальный session_id и создает новую запись в таблице oc_api_session, связывая её с api_id пользователя и записывая IP-адрес клиента.

3. Сгенерированный session_id возвращается клиенту и должен использоваться в заголовках (например, X-Oc-Session) всех последующих запросов к защищенным методам API для подтверждения прав доступа.

4. При каждом новом запросе система ищет переданный session_id в этой таблице, проверяет его актуальность и обновляет поле date_modified.

5. Сессии могут иметь время жизни, по истечении которого (или после выхода из системы) запись удаляется из таблицы, делая токен недействительным.

Пример SQL-запроса

Получить список всех активных сессий для конкретного API-пользователя можно следующим запросом:

SELECT aps.*, a.name as api_name, a.username FROM oc_api_session aps LEFT JOIN oc_api a ON (aps.api_id = a.api_id) WHERE aps.api_id = 1 ORDER BY aps.date_modified DESC;

Смотрите также

  • таблицу oc_api,
    которая хранит учетные записи API-пользователей
  • таблицу oc_session,
    которая хранит сессии обычных пользователей и администраторов
  • таблицу oc_api_ip,
    которая содержит белый список IP-адресов для доступа к API
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить