Sesiones
Un objeto de sesión representa el acceso a una fuente específica.
Las sesiones siempre se crean con un estado pendiente, hasta que la API pueda verificar el acceso con el servicio de la fuente de destino.
Si el servicio de la fuente de destino revoca el acceso, la sesión pasará a un estado vencido.
Las sesiones no son actualizables por el cliente.
Atributos
nombre | tipo | descripción |
---|---|---|
id | cuerda | Identificador de recursos. |
resource | cadena, siempre session | Identificador del tipo de recurso. |
organisation | ID de la organización | La organización a la que está asociada la sesión. |
key | ID de clave | La clave asociada a este recurso. |
user | ID de usuario | El usuario con el que está asociada la sesión. |
source | fuente anidada | La instancia de origen con la que está asociada la sesión. |
state | cuerda | Uno de: pending , active , failed , expired . |
error | cuerda | Un código que hace referencia a la razón por la que expiró la sesión. |
date_created | fecha y hora | Cuando el recurso fue creado. |
date_expired | fecha y hora | Cuando el recurso expiró. |
Estados
-
pending
- La sesión aún está siendo inicializada.
-
active
- La sesión está lista para ser usada para enviar tareas.
-
failed
- La inicialización de la sesión falló.
-
expired
- La sesión ha sido invalidada.
Los errores
Una sesión puede tener dos tipos de errores: errores de inicialización y errores de caducidad.
Los errores de inicialización de la sesión generalmente ocurren debido a un nombre de usuario o contraseña incorrectos, la necesidad de autenticación 2FA o el servicio que rechaza el acceso a la fuente por algún otro motivo. Estos errores tendrán el tipo de error init_failed
.
La mayoría de las sesiones eventualmente expirarán. Se pueden encontrar más detalles de la duración de la sesión en los documentos específicos del servicio. Sin embargo, hay varios desencadenantes para la expiración de la sesión:
service
- El servicio de terceros ha invalidado la sesión. Esto suele deberse a los tiempos de espera de sesión dentro del servicio de terceros (es decir, una sesión solo puede durar 24 horas). Sin embargo, también puede deberse a que el propietario de la fuente cambie sus credenciales, ya que esto a menudo invalida la sesión existente, o puede ser activado por una característica de seguridad dentro del servicio, como un sistema de detección de intrusos.
api
- La API invalida periódicamente las sesiones inactivas.
organisation
- La organización ha invalidado la sesión, posiblemente en nombre del usuario final.
admin
- Un administrador de API ha invalidado la sesión.
Crear POST /sessions
Parámetros
nombre | tipo | descripción |
---|---|---|
source | necesario | La fuente a la que se asociará esta sesión. Los contenidos deben seguir el esquema de creación de la fuente . |
payload | necesario | La carga de inicialización de sesión. Los contenidos requeridos dependen del servicio al que pertenece la fuente. |
Usando 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" } }'
Utilizando 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)
Recuperar GET /sessions/{session ID}
Usando cURL
curl https://ricloud-api.reincubate.com/sessions/<session ID> \ -H 'Authorization: Token <your key_token>'
Utilizando ricloud-py
import ricloud session = ricloud.Session.retrieve(<session ID>)
Lista
GET /sessions
nombre | tipo | descripción |
---|---|---|
key | filtro de identificación de clave | Filtrar por una ID de clave. |
user | filtro de ID de usuario | Filtrar por una identificación de usuario. |
source | filtro de ID de fuente | Filtrar por una ID de fuente. |
state | filtro de cadena | Filtrar por el estado de la sesión. |
date_created | filtro de fecha y hora | Filtrar por cuando se creó la sesión. |
date_expired | filtro de fecha y hora | Filtrar por cuando expiró la sesión. |
Usando cURL
curl https://ricloud-api.reincubate.com/sessions \ -H 'Authorization: Token <your key_token>'
Utilizando ricloud-py
import ricloud sessions = ricloud.Session.list()
Eliminar DELETE /sessions/{session ID}
Esta interacción expira la sesión y elimina todos los datos en caché asociados con ella en la API. La instancia de recurso de sesión real se conserva para el registro.
Usando cURL
curl https://ricloud-api.reincubate.com/sessions/<session ID> \ -X DELETE \ -H 'Authorization: Token <your key_token>'
Utilizando ricloud-py
import ricloud session = ricloud.Session.delete_with_id(<session ID>) # OR session = ricloud.Session.retrieve(<session ID>) session.delete()