SDK in abbonamento
OAuth per utente · limiti del piano condivisi tra le app · modello gestito da Pura.
Cerchi le API a consumo?Token, refresh e concorrenza
Storage cifrato per utente e rotazione sicura su più worker.
Durata e rotazione
Access token: quindici minuti. Refresh token: trenta giorni. Ogni refresh sostituisce access e refresh token; salva la nuova coppia prima di continuare. Riutilizzare un refresh token già ruotato revoca la sua famiglia di token.
TokenStore
Implementa get e set su un record associato a utente locale, app e identità Pura verificata. Cifra i token a riposo con una chiave nel tuo secret store. Il record deve essere accessibile solo al backend che gestisce quella sessione; una connessione cancellata restituisce null/None.
import type {TokenStore, StoredTokens} from '@pura-ai/sdk';
// DB reads/writes must use the lock's transaction context.
const store: TokenStore = {
get: async (): Promise<StoredTokens | null> => loadEncryptedGrant(),
set: async tokens => saveEncryptedGrant(tokens),
withRefreshLock: operation => withGrantDatabaseLock(operation),
};Più processi e worker
Un’istanza SDK coordina i propri refresh concorrenti. Per più istanze implementa withRefreshLock(operation) in TypeScript o with_refresh_lock() in Python con un lock condiviso relativo allo stesso grant. La lettura, il refresh e il salvataggio devono avvenire nello stesso contesto transazionale.
Sotto il lock l’SDK rilegge i token: se un altro worker ha già ruotato usa la nuova coppia. Rilascia il lock anche quando la funzione fallisce. Un lock globale per tutti gli utenti crea colli di bottiglia e non sostituisce l’associazione corretta della sessione.
Revoca e identità incoerente
invalid_grant o una variazione del pura_user_id durante il refresh interrompono il collegamento. L’SDK non salva token appartenenti a un’identità diversa. Richiedi una nuova autorizzazione e cancella i token non validi; non tentare refresh in ciclo.