Sessões
Um objeto de sessão representa o acesso a uma fonte específica.
As sessões são sempre criadas com um estado pendente, até que a API possa verificar o acesso ao serviço da fonte de destino.
Se o serviço da fonte de destino revogar o acesso, a sessão passará para um estado expirado.
A sessão não é atualizável pelo cliente.
Atributos
nome | tipo | descrição |
---|---|---|
id | corda | Identificador de recursos. |
resource | string, sempre session | Identificador de tipo de recurso. |
organisation | ID da organização | A organização à qual a sessão está associada. |
key | ID da chave | A chave associada a este recurso. |
user | ID do usuário | O usuário ao qual a sessão está associada. |
source | fonte aninhada | A instância de origem à qual a sessão está associada. |
state | corda | Um dos seguintes: pending , active , failed , expired . |
error | corda | Um código referente ao motivo pelo qual a sessão expirou. |
date_created | data hora | Quando o recurso foi criado. |
date_expired | data hora | Quando o recurso expirou. |
Estados
-
pending
- A sessão ainda está sendo inicializada.
-
active
- A sessão está pronta para ser usada para enviar tarefas.
-
failed
- A inicialização da sessão falhou.
-
expired
- A sessão foi invalidada.
Erros
Uma sessão pode ter dois tipos de erros: erros de inicialização e erros de expiração.
Erros de inicialização de sessão normalmente ocorrem devido a um nome de usuário ou senha inválidos, a necessidade de autenticação 2FA ou o serviço recusando o acesso à origem por algum outro motivo. Esses erros terão o tipo de erro init_failed
.
A maioria das sessões acabará por expirar. Mais detalhes da duração da sessão podem ser encontrados nos documentos específicos do serviço. No entanto, existem vários gatilhos para a expiração da sessão:
service
- O serviço de terceiros invalidou a sessão. Isso geralmente ocorre devido a tempos limite da sessão dentro do serviço de terceiros (ou seja, uma sessão pode durar apenas 24 horas). No entanto, isso também pode ser causado pelo proprietário da origem que altera suas credenciais, pois isso muitas vezes invalida a sessão existente ou pode ser acionado por um recurso de segurança dentro do serviço, como um sistema de detecção de intrusos.
api
- A API invalida periodicamente as sessões inativas.
organisation
- A organização invalidou a sessão, possivelmente em nome do usuário final.
admin
- Um administrador da API invalidou a sessão.
Criar POST /sessions
Parâmetros
nome | tipo | descrição |
---|---|---|
source | requeridos | A fonte a qual esta sessão será associada. O conteúdo deve seguir o esquema de criação de origem . |
payload | requeridos | A carga útil de inicialização da sessão. O conteúdo requerido depende do serviço ao qual a fonte pertence. |
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" } }'
Usando 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>'
Usando ricloud-py
import ricloud session = ricloud.Session.retrieve(<session ID>)
Lista
GET /sessions
nome | tipo | descrição |
---|---|---|
key | filtro de identificação de chave | Filtre por um ID da chave. |
user | filtro de ID do usuário | Filtrar por um ID do usuário. |
source | filtro de ID de origem | Filtrar por um ID de origem. |
state | filtro de string | Filtrar pelo estado da sessão. |
date_created | filtro de data e hora | Filtrar por quando a sessão foi criada. |
date_expired | filtro de data e hora | Filtrar por quando a sessão expirou. |
Usando cURL
curl https://ricloud-api.reincubate.com/sessions \ -H 'Authorization: Token <your key_token>'
Usando ricloud-py
import ricloud sessions = ricloud.Session.list()
Excluir DELETE /sessions/{session ID}
Essa interação expira a sessão e exclui todos os dados armazenados em cache associados a ela na API. A instância real do recurso de sessão é persistida para o registro.
Usando cURL
curl https://ricloud-api.reincubate.com/sessions/<session ID> \ -X DELETE \ -H 'Authorization: Token <your key_token>'
Usando ricloud-py
import ricloud session = ricloud.Session.delete_with_id(<session ID>) # OR session = ricloud.Session.retrieve(<session ID>) session.delete()