Sessioni
Un oggetto sessione rappresenta l'accesso a una fonte specifica.
Le sessioni vengono sempre create con uno stato in sospeso, fino a quando l'API non è in grado di verificare l'accesso con il servizio dell'origine di destinazione.
Se il servizio dell'origine di destinazione revoca l'accesso, la sessione passerà allo stato scaduto.
Le sessioni non sono aggiornabili dal client.
attributi
nome | genere | descrizione |
---|---|---|
id | stringa | Identificatore di risorse |
resource | stringa, sempre session | Identificatore del tipo di risorsa. |
organisation | ID organizzazione | L'organizzazione alla quale è associata la sessione. |
key | ID chiave | La chiave associata a questa risorsa. |
user | ID utente | L'utente a cui è associata la sessione. |
source | fonte nidificata | L'istanza di origine a cui è associata la sessione. |
state | corda | Uno di: in pending , active , failed , expired . |
error | corda | Un codice che si riferisce al motivo della scadenza della sessione. |
date_created | appuntamento | Quando la risorsa è stata creata. |
date_expired | appuntamento | Quando la risorsa è scaduta. |
stati
-
pending
- La sessione è ancora in fase di inizializzazione.
-
active
- La sessione è pronta per essere utilizzata per inviare attività.
-
failed
- Inizializzazione della sessione fallita.
-
expired
- La sessione è stata invalidata.
Errori
Una sessione può avere due tipi di errori: errori di inizializzazione ed errori di scadenza.
Gli errori di inizializzazione della sessione si verificano in genere a causa di un nome utente o password errati, della necessità dell'autenticazione 2FA o del declino dell'accesso alla fonte per qualche altro motivo. Questi errori avranno il tipo di errore init_failed
.
La maggior parte delle sessioni finirà per scadere. Ulteriori dettagli sulla durata della sessione possono essere trovati nei documenti specifici del servizio. Tuttavia, esistono vari trigger per la scadenza della sessione:
service
- Il servizio di terze parti ha invalidato la sessione. Ciò è in genere dovuto ai timeout della sessione all'interno del servizio di terze parti (ovvero una sessione può durare solo 24 ore). Tuttavia, può anche essere causato dal proprietario della fonte che modifica le proprie credenziali, in quanto ciò spesso invalida la sessione esistente o può essere attivato da una funzionalità di sicurezza all'interno del servizio, come un sistema di rilevamento intrusi.
api
- L'API invalida periodicamente le sessioni inattive.
organisation
- L'organizzazione ha invalidato la sessione, probabilmente per conto dell'utente finale.
admin
- Un amministratore API ha invalidato la sessione.
Crea POST /sessions
parametri
nome | genere | descrizione |
---|---|---|
source | necessario | L'origine a cui questa sessione sarà associata. I contenuti dovrebbero seguire lo schema di creazione del codice sorgente . |
payload | necessario | Il carico utile di inizializzazione della sessione. I contenuti richiesti dipendono dal servizio a cui appartiene la fonte. |
Utilizzando 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)
Recupera GET /sessions/{session ID}
Utilizzando 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>)
Elenco
GET /sessions
nome | genere | descrizione |
---|---|---|
key | filtro ID chiave | Filtra per ID chiave. |
user | filtro ID utente | Filtra per un ID utente. |
source | filtro ID sorgente | Filtra per un ID sorgente. |
state | filtro a corde | Filtra per stato di sessione. |
date_created | filtro datetime | Filtra per quando è stata creata la sessione. |
date_expired | filtro datetime | Filtra per quando la sessione è scaduta. |
Utilizzando cURL
curl https://ricloud-api.reincubate.com/sessions \ -H 'Authorization: Token <your key_token>'
Usando ricloud-py
import ricloud sessions = ricloud.Session.list()
Elimina DELETE /sessions/{session ID}
Questa interazione fa scadere la sessione ed elimina tutti i dati memorizzati nella cache ad esso associati sull'API. L'istanza della risorsa di sessione effettiva viene mantenuta per il record.
Utilizzando 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()