SHiNE-server/Dev_Docs/API/03_Session_Management_API.md
AidarKC 1aabcf4d80 27 03 25
Доделал API функции для авторификации и работы с сессиями сервер и документ для разработчиков по

Авторификациии и серверам

Всё работает
2026-03-27 22:06:19 +03:00

3.5 KiB
Raw Blame History

API для разработчиков: Управление сессиями

Этот файл описывает методы, которые используются уже после успешной авторизации пользователя в сессию.

Здесь два метода:

  • ListSessions — получить список активных сессий пользователя;
  • CloseActiveSession — закрыть одну из активных сессий.

Логика раздела такая:

  • сначала пользователь проходит SessionLogin;
  • после этого сервер считает соединение авторизованным;
  • уже в этом состоянии клиент может читать список сессий и управлять ими.

То есть это не этап создания или входа в сессию, а этап последующего контроля уже существующих активных сессий.

1. ListSessions

Доступно только после успешного SessionLogin.

Запрос

{
  "op": "ListSessions",
  "requestId": "list-001",
  "payload": {
  }
}

Успешный ответ

{
  "op": "ListSessions",
  "requestId": "list-001",
  "status": 200,
  "ok": true,
  "payload": {
    "sessions": [
      {
        "sessionId": "sess_7c5e5c4b",
        "clientInfoFromClient": "Android 15; Pixel 9",
        "clientInfoFromRequest": "UA=Java-http-client/17.0.18; remote=127.0.0.1",
        "geo": "RU/Moscow",
        "lastAuthenticatedAtMs": 1774600010500
      }
    ]
  }
}

Специфические коды ошибок ListSessions

  • 422 / NOT_AUTHENTICATED — запрос доступен только после успешного SessionLogin.
  • 501 / DB_ERROR_LIST_SESSIONS — ошибка БД при чтении списка активных сессий.
  • 500 / INTERNAL_ERROR — непредвиденная внутренняя ошибка сервера.

2. CloseActiveSession

Доступно только после успешного SessionLogin.

Запрос

{
  "op": "CloseActiveSession",
  "requestId": "close-001",
  "payload": {
    "sessionId": "sess_7c5e5c4b"
  }
}

Успешный ответ

{
  "op": "CloseActiveSession",
  "requestId": "close-001",
  "status": 200,
  "ok": true,
  "payload": {
  }
}

Специфические коды ошибок CloseActiveSession

  • 422 / NOT_AUTHENTICATED — запрос доступен только после успешного SessionLogin.
  • 400 / NO_SESSION_TO_CLOSE — сервер не смог определить, какую сессию нужно закрыть.
  • 501 / DB_ERROR — ошибка БД при поиске сессии или её удалении.
  • 422 / SESSION_NOT_FOUND — целевая сессия не найдена.
  • 422 / SESSION_OF_ANOTHER_USER — нельзя закрывать сессию другого пользователя.
  • 500 / INTERNAL_ERROR — непредвиденная внутренняя ошибка сервера.

3. Пример ошибки

{
  "op": "CloseActiveSession",
  "requestId": "close-001",
  "status": 403,
  "ok": false,
  "error": "NOT_AUTHENTICATED",
  "message": "Операция доступна только для авторизованных пользователей",
  "payload": {
  }
}