

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# L'endpoint di revoca del token
<a name="revocation-endpoint"></a>

Gli utenti che dispongono di un token di aggiornamento nella loro sessione hanno qualcosa di simile a un cookie del browser. Possono rinnovare la sessione esistente purché il token di aggiornamento sia valido. Invece di richiedere a un utente di accedere dopo la scadenza dell'ID o del token di accesso, l'applicazione può utilizzare il token di aggiornamento per ottenere nuovi token validi. Tuttavia, è possibile stabilire esternamente che la sessione di un utente debba essere terminata oppure l'utente potrebbe scegliere di dimenticare la sessione corrente. A quel punto, puoi revocare quel token di aggiornamento in modo che l'utente non possa più persistere nella sessione.

L'`/oauth2/revoke`endpoint revoca il token di accesso di un utente che Amazon Cognito aveva inizialmente emesso con il token di aggiornamento fornito. Questo endpoint revoca anche il token di aggiornamento stesso e tutti i token di accesso e di identità successivi dello stesso token di aggiornamento. Dopo che l'endpoint ha revocato i token, non puoi utilizzare i token di accesso revocati per accedere ai token di Amazon APIs Cognito autenticati.

## POST /oauth2/revoke
<a name="post-revoke"></a>

L'endpoint `/oauth2/revoke` supporta solo `HTTPS POST`. Il client del bacino d'utenza effettua direttamente le richieste a questo endpoint e non tramite il browser di sistema.

### Parametri della richiesta nell'intestazione
<a name="revocation-request-parameters"></a>

**`Authorization`**  
Se il client dell'app dispone di un client secret, l'applicazione deve trasmetterlo `client_id` e `client_secret` inserirlo nell'intestazione di autorizzazione tramite l'autorizzazione HTTP di base. Il segreto è [Basic](https://en.wikipedia.org/wiki/Basic_access_authentication#Client_side) `Base64Encode(client_id:client_secret)`.

**`Content-Type`**  
Deve sempre essere `'application/x-www-form-urlencoded'`.

#### Parametri della richiesta nel corpo
<a name="revocation-request-parameters-body"></a>

**`token`**  
(Obbligatorio) Il token di aggiornamento che il client desidera revocare. La richiesta revoca anche tutti i token di accesso emessi da Amazon Cognito con questo token di aggiornamento.  
Obbligatorio.

**`client_id`**  
(Facoltativo) L'ID client dell'app per il token che desideri revocare.  
Obbligatorio se il client è pubblico e non dispone di un segreto.

## Esempi di richiesta di revoca
<a name="revoke-sample-request"></a>

Questa richiesta di revoca revoca un token di aggiornamento per un client di app che non ha alcun segreto client. Annotate il `client_id` parametro nel corpo della richiesta.

```
POST /oauth2/revoke HTTP/1.1
Host: mydomain.auth.us-east-1.amazoncognito.com
Accept: application/json
Content-Type: application/x-www-form-urlencoded
token=2YotnFZFEjr1zCsicMWpAA&
client_id=1example23456789
```

*Questa richiesta di revoca revoca un token di aggiornamento per un client di app con un client segreto.* Nota l'`Authorization`intestazione che contiene un ID client codificato e un client secret, ma non nel corpo della richiesta. `client_id`

```
POST /oauth2/revoke HTTP/1.1
Host: mydomain.auth.us-east-1.amazoncognito.com
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
token=2YotnFZFEjr1zCsicMWpAA
```

## Risposta di errore di revoca
<a name="revoke-sample-response"></a>

Una risposta riuscita contiene un corpo vuoto. La risposta di errore è un oggetto JSON con un campo `error` e possibilmente un campo `error_description`.

**Errori di endpoint**
+ Se il token non è presente nella richiesta o se la funzionalità è disabilitata per il client dell'app, viene restituito un codice di errore HTTP 400 e `invalid_request`.
+ Se il token inviato da Amazon Cognito nella richiesta di revoca non è un token di aggiornamento, riceverai un codice di errore HTTP 400 e `unsupported_token_type`.
+ Se le credenziali client non sono valide, riceverai un codice di errore HTTP 401 e `invalid_client`.
+ Se il token è stato revocato o se il client ha inviato un token non valido, viene restituito un codice di errore HTTP 200 OK. 