{"revision":"9f11a31dd2951db0","language":"it","entry":{"id":"oidc-introspect","kind":"endpoint","group":"oidc","title":"Ispeziona un token","method":"POST","path":"/oidc/introspect","paths":[],"summary":"RFC 7662, per le app confidenziali: se uno dei token dell'app è attivo adesso.","response":"{active, …}; {active: false} per ogni token non attivo o non dell'app.","parameters":[],"sample":"/oidc/introspect","access":"private-code","base":"directory","notes":["Gli errori di questo endpoint seguono OAuth: `{\"error\", \"error_description\"}` (RFC 6749, 5.2), non l'oggetto `error` del resto delle API. Un limite risponde comunque 429 con la busta solita."],"errors":["400 invalid_request","401 invalid_client","429 rate_limited","500 internal_error","503 busy"],"related":["sign-in-with-veil"],"sections":[{"kind":"code","language":"shell","code":"curl -fsS -u \"$CLIENT_ID:$CLIENT_SECRET\" \\\n  -d token=\"$ACCESS_TOKEN\" \"https://veil.rip/oidc/introspect\""}],"live":false,"responses":[{"status":200,"contentType":"application/json","description":"{active, …}; {active: false} per ogni token non attivo o non dell'app.","fields":[{"name":"active","type":"boolean","description":"Non revocato, non ruotato, non scaduto, la scheda aperta e non sospesa."},{"name":"scope, client_id, sub, aud, iss, iat, exp, token_type, auth_time","type":"mixed","description":"Come li nomina RFC 7662, quando attivo."},{"name":"veil_good_standing","type":"boolean","description":"Lo stato della scheda adesso, quando attivo."}]}],"responseObjects":[],"errorFormat":"json","errorDetails":[{"status":400,"code":"invalid_request","description":"Errore OAuth: un parametro manca, è ripetuto o malformato, oppure il corpo non è un modulo.","action":"Leggi `error_description`, correggi la richiesta e mandala di nuovo.","scope":"endpoint"},{"status":401,"code":"invalid_client","description":"Errore OAuth: l'app non si è autenticata con il metodo che ha registrato.","action":"Controlla client id e segreto (Basic), l'asserzione (private_key_jwt, un jti nuovo ogni volta) o client_id per un'app pubblica.","scope":"endpoint"},{"status":429,"code":"rate_limited","description":"È stato superato un limite anonimo, delle richieste firmate o della chiave API.","action":"Attendi almeno i secondi indicati da `Retry-After`. Condividi coda e budget dei tentativi tra i tuoi processi.","scope":"common"},{"status":500,"code":"internal_error","description":"Si è verificato un errore imprevisto del server. I dettagli interni non vengono restituiti.","action":"Riprova le letture con attese crescenti e un limite. Controlla l’esito delle scritture prima di inviare una nuova operazione firmata.","scope":"common"},{"status":503,"code":"busy","description":"L’applicazione ha raggiunto un limite temporaneo di concorrenza o del database.","action":"Attendi i secondi indicati da `Retry-After` e riprova con attese crescenti e un limite.","scope":"common"}],"responseHeaders":[{"name":"Content-Type","value":"application/json","description":"JSON, anche per gli errori."},{"name":"Cache-Control","value":"no-store","description":"Privata: mai in una cache."}],"bodyFields":[{"name":"token","in":"body","required":true,"description":"Il token."}],"documentationUrl":"https://veil.rip/docs/oidc-introspect?lang=it","supportsBrowserFetch":false,"browserMode":"local-or-server"}}