Sessions
Un objet de session représente l'accès à une source spécifique.
Les sessions sont toujours créées avec un état en attente jusqu'à ce que l'API puisse vérifier l'accès avec le service de la source cible.
Si le service de la source cible annule l'accès, la session passera à un état expiré.
Les sessions ne peuvent pas être mises à jour par le client.
Les attributs
prénom | type | la description |
---|---|---|
id | chaîne | Identifiant de ressource. |
resource | chaîne, toujours session | Identifiant du type de ressource. |
organisation | ID d'organisation | L'organisation à laquelle la session est associée. |
key | ID clé | La clé associée à cette ressource. |
user | identifiant d'utilisateur | L'utilisateur auquel la session est associée. |
source | source imbriquée | L'instance source à laquelle la session est associée. |
state | chaîne | L'un des suivants: en pending , active , failed , expired . |
error | chaîne | Un code faisant référence à la raison pour laquelle la session a expiré. |
date_created | date / heure | Quand la ressource a été créée. |
date_expired | date / heure | Lorsque la ressource a expiré. |
États
-
pending
- La session est toujours en cours d'initialisation.
-
active
- La session est prête à être utilisée pour soumettre des tâches.
-
failed
- L'initialisation de la session a échoué.
-
expired
- La session a été invalidée.
les erreurs
Une session peut avoir deux types d’erreurs: les erreurs d’initialisation et les erreurs d’expiration.
Les erreurs d'initialisation de session sont généralement dues à un nom d'utilisateur ou un mot de passe incorrect, à la nécessité d'une authentification 2FA ou à un refus du service d'accéder à la source pour une autre raison. Ces erreurs auront le type d'erreur init_failed
.
La plupart des sessions finiront par expirer. Vous trouverez plus de détails sur la durée de la session dans les documents spécifiques au service. Cependant, il existe différents déclencheurs d'expiration de session:
service
- Le service tiers a invalidé la session. Cela est généralement dû au délai d'expiration de session du service tiers (une session ne peut durer que 24 heures). Toutefois, cela peut également être causé par le propriétaire de la source qui modifie ses informations d'identification, car cela invalide souvent une session existante, ou par une fonctionnalité de sécurité du service, telle qu'un système de détection d'intrus.
api
- L'API invalide périodiquement les sessions inactives.
organisation
- L'organisation a invalidé la session, éventuellement au nom de l'utilisateur final.
admin
- Un administrateur d’API a invalidé la session.
Créer un POST /sessions
Paramètres
prénom | type | la description |
---|---|---|
source | Champs obligatoires | La source à laquelle cette session sera associée. Le contenu doit suivre le schéma de création de source . |
payload | Champs obligatoires | La charge utile d'initialisation de session. Le contenu requis dépend du service auquel la source appartient. |
Utiliser 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" } }'
Utiliser 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)
Récupérer GET /sessions/{session ID}
Utiliser cURL
curl https://ricloud-api.reincubate.com/sessions/<session ID> \ -H 'Authorization: Token <your key_token>'
Utiliser ricloud-py
import ricloud session = ricloud.Session.retrieve(<session ID>)
liste
GET /sessions
prénom | type | la description |
---|---|---|
key | filtre d'identifiant de clé | Filtrer par un identifiant de clé. |
user | filtre d'identifiant | Filtrer par un ID utilisateur. |
source | filtre d'identifiant source | Filtrer par un ID source. |
state | filtre de chaîne | Filtrer par l'état de la session. |
date_created | filtre datetime | Filtrer par date de création de la session. |
date_expired | filtre datetime | Filtrer par date d'expiration de la session. |
Utiliser cURL
curl https://ricloud-api.reincubate.com/sessions \ -H 'Authorization: Token <your key_token>'
Utiliser ricloud-py
import ricloud sessions = ricloud.Session.list()
Supprimer DELETE /sessions/{session ID}
Cette interaction expire la session et supprime toutes les données mises en cache qui lui sont associées sur l'API. L'instance de ressource de session réelle est conservée pour l'enregistrement.
Utiliser cURL
curl https://ricloud-api.reincubate.com/sessions/<session ID> \ -X DELETE \ -H 'Authorization: Token <your key_token>'
Utiliser ricloud-py
import ricloud session = ricloud.Session.delete_with_id(<session ID>) # OR session = ricloud.Session.retrieve(<session ID>) session.delete()