Сессии
Объект сеанса представляет доступ к определенному источнику.
Сеансы всегда создаются с состоянием ожидания, пока API не сможет проверить доступ с помощью службы целевого источника.
Если служба целевого источника аннулирует доступ, сеанс перейдет в истекшее состояние.
Сессия не обновляется клиентом.
Атрибуты
название | тип | описание |
---|---|---|
id | строка | Идентификатор ресурса. |
resource | строка, всегда session | Идентификатор типа ресурса. |
organisation | идентификатор организации | Организация, с которой связан сеанс. |
key | идентификатор ключа | Ключ, связанный с этим ресурсом. |
user | Логин пользователя | Пользователь, с которым связан сеанс. |
source | вложенный источник | Исходный экземпляр, с которым связан сеанс. |
state | строка | Один из: pending , active , failed , expired . |
error | строка | Код, ссылающийся на причину истечения сеанса. |
date_created | Дата и время | Когда ресурс был создан. |
date_expired | Дата и время | Когда ресурс истек. |
состояния
-
pending
- Сессия все еще инициализируется.
-
active
- Сессия готова к использованию для отправки задач.
-
failed
- Не удалось инициализировать сеанс.
-
expired
- Сессия была признана недействительной.
ошибки
Сеанс может иметь два типа ошибок: ошибки инициализации и ошибки истечения.
Ошибки инициализации сеанса обычно возникают из-за неверного имени пользователя или пароля, необходимости аутентификации 2FA или службы, отказывающей в доступе к источнику по какой-либо другой причине. Эти ошибки будут иметь init_failed
ошибки init_failed
.
Большинство сессий в конечном итоге истекает. Более подробную информацию о времени жизни сессии можно найти в документации по сервису. Однако существуют разные триггеры для истечения срока действия сессии:
service
- Сторонний сервис аннулировал сеанс. Обычно это происходит из-за превышения времени ожидания сеанса в сторонней службе (т. Е. Сеанс может длиться только 24 часа). Однако это также может быть вызвано тем, что владелец источника изменил свои учетные данные, поскольку это часто делает недействительным существующий сеанс, или он может быть вызван функцией безопасности в службе, такой как система обнаружения вторжений.
api
- API периодически аннулирует неактивные сеансы.
organisation
- Организация аннулировала сеанс, возможно, от имени конечного пользователя.
admin
- Администратор API аннулировал сеанс.
Создать POST /sessions
параметры
название | тип | описание |
---|---|---|
source | требуется | Источник этого сеанса будет связан с. Содержимое должно соответствовать схеме создания источника . |
payload | требуется | Полезная нагрузка инициализации сеанса. Требуемое содержимое зависит от службы, к которой принадлежит источник. |
Использование cURL
curl https://ricloud-api.reincubate.com/sessions \ -X POST \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "source": { "user": 1, "type": "icloud.account", "identifier": "john.appleseed@reincubate.com" }, "payload": { "password": "1234" } }'
Использование ricloud-py
import ricloud source = { 'user': 1, 'type': 'icloud.account', 'identifier': 'john.appleseed@reincubate.com', } payload = { 'password': '1234', } session = ricloud.Session.create(source=source, payload=payload)
Получить GET /sessions/{session ID}
Использование cURL
curl https://ricloud-api.reincubate.com/sessions/<session ID> \ -H 'Authorization: Token <your key_token>'
Использование ricloud-py
import ricloud session = ricloud.Session.retrieve(<session ID>)
Список
GET /sessions
название | тип | описание |
---|---|---|
key | фильтр идентификатора ключа | Фильтр по идентификатору ключа. |
user | фильтр идентификатора пользователя | Фильтр по идентификатору пользователя. |
source | фильтр идентификатора источника | Фильтр по идентификатору источника. |
state | строковый фильтр | Фильтр по состоянию сеанса. |
date_created | фильтр даты и времени | Фильтровать по тому, когда сеанс был создан. |
date_expired | фильтр даты и времени | Фильтровать по истечении времени сеанса. |
Использование cURL
curl https://ricloud-api.reincubate.com/sessions \ -H 'Authorization: Token <your key_token>'
Использование ricloud-py
import ricloud sessions = ricloud.Session.list()
Удалить DELETE /sessions/{session ID}
Это взаимодействие истекает сеанс и удаляет любые кэшированные данные, связанные с ним в API. Фактический экземпляр ресурса сеанса сохраняется для записи.
Использование cURL
curl https://ricloud-api.reincubate.com/sessions/<session ID> \ -X DELETE \ -H 'Authorization: Token <your key_token>'
Использование ricloud-py
import ricloud session = ricloud.Session.delete_with_id(<session ID>) # OR session = ricloud.Session.retrieve(<session ID>) session.delete()