Большая часть операций api выполняется в привязке к пользователю: на нем загружаются и хранятся данные (продукты, операции, чеки), начисляется кешбек.
Данные пользователей изолированы друг от друга, но в рамках api можно работать как с отдельными пользователями, так и всеми сразу.
Работа со списком пользователей
Пользователей можно добавлять (POST /users/add), удалять (DELETE /users/{user_id}), просматривать список (GET /users) и конкретного пользователя (GET /users/{user_id}).
Пример добавления:
{ "email": "test@cashoff.ru", }
{ "id": 1330588, "name": "test_api/66d912b16bb5417f93ae6ff5583ce8ad/1553693879", "created": "2019-03-27T13:37:59Z", "is_cashback_enabled": false }
Где name - это сгенерированное уникальное имя пользователя в сервисе, id - идентификатор пользователя. Поле email, задаваемое при создании, информационное и не требуется.
Пользовательская сессия
По пользователям возможно выпускать отдельные сессии, которые дадут на ограниченное время доступ к данным пользователя. Их можно использовать либо через api, либо через UI модуль CASHOFF.
Сессии возможно использовать на клиентской части приложения и являются альтернативой серверной авторизации. Сессии можно выпускать (POST /users/sessions/add), удалять (DELETE /users/sessions/{session_key}) и просматривать (GET /users/sessions/{session_key}). Время сессии ограничено и задается при создании, однако сессию можно досрочно удалить.
В API пользовательские сессии используются через заголовок co-session, вместо co-auth. Такие сессии привязаны к одному пользователю и не дают возможности получить данные по другим.
Сессия всегда выпускается на ограниченное время (по умолчанию - 24 часа). Желаемое время жизни сессии можно указать при создании в атрибуте ttl.