Revoca dei token OAuth a livello di programmazione
Revocare un token OAuth per impedire a un client di accedere ai dati Salesforce o se non si è certi che il client interrompa da solo l'accesso.
Versioni (Edition) richieste
| Disponibile in: Salesforce Classic e Lightning Experience |
| Disponibile in: tutte le versioni |
Quando un client, tramite un'applicazione connessa o un'applicazione client esterna, riceve un token di accesso o di aggiornamento da un flusso autorizzazione OAuth 2.0, può utilizzare il token per accedere ai dati. È possibile revocare il token di accesso dell'applicazione o il token di aggiornamento e tutti i token di accesso correlati usando la funzionalità di revoca. Gli sviluppatori possono revocare il token quando configurano un pulsante Esci nell'applicazione.
Utilizzare uno dei metodi seguenti per revocare i token di accesso o aggiornamento di un'applicazione connessa o client esterna. Questi metodi sono supportati per i token opachi e i token di accesso basati su JWT. Per revocare un token di accesso a Data Cloud, vedere Revoca dei token.
Revocare i token con una richiesta POST
Per revocare i token OAuth 2.0, utilizzare l'endpoint di revoca.
https://MyDomainName.my.salesforce.com/services/oauth2/revokeCreare una richiesta POST che utilizza il formato application/x-www-form-urlencoded nel corpo-entità della richiesta HTTP. Ad esempio, utilizzare questo formato di richiesta per revocare i token opachi e i token di accesso basati su JWT per gli utenti denominati.
POST /services/oauth2/revoke HTTP/1.1
Host: https://MyDomainName.my.salesforce.com
Content-Type: application/x-www-form-urlencoded
token=currenttokenPer revocare un token di accesso basato su JWT emesso per un utente guest, sono presenti alcune intestazioni aggiuntive. Includere un'intestazione Auth-Request-Type con il valore guest e un'intestazione Uvid-Hint con l'ID visitatore univoco (UVID) dell'utente guest. Di seguito è riportato un esempio di richiesta di revoca di un token di accesso basato su JWT guest.
POST /services/oauth2/revoke? HTTP 1.1
Host:https://MyDomainName.my.salesforce.com
Content-Type: application/x-www-form-urlencoded
Auth-Request-Type: guest
Uvid-Hint: <UVID value>
token=currenttokenSe è incluso un token di accesso opaco o basato su JWT, Salesforce lo invalida e revoca il token. Se è incluso un token di aggiornamento, questo viene revocato da Salesforce insieme a tutti i token di accesso associati. Se è incluso un token di eliminazione, Salesforce lo interroga e revoca il token di aggiornamento e i token di accesso associati.
Salesforce indica che la richiesta viene elaborata correttamente restituendo il codice di stato HTTP 200. Per tutte le condizioni di errore, Salesforce restituisce il codice di stato 400 insieme a una delle seguenti risposte di errore.
unsupported_token_type: tipo di token non supportatoinvalid_token: il token non era valido
Per un Sandbox, utilizzare MyDomainName--SandboxName.sandbox.my.salesforce.com anziché MyDomainName.my.salesforce.com.
Revocare i token con JSONP
L'endpoint di revoca di Salesforce accetta le richieste GET con un parametro di richiamata aggiuntivo e restituisce la risposta con application/javascript di tipo di contenuto. Ad esempio:
https://MyDomainName.my.salesforce.com/services/oauth2/revoke?token=XXXXX&callback=myCallbackSe la richiesta ha esito positivo, viene inviata una richiamata alla funzione JavaScript impostata nel parametro di richiamata del GET.
myCallback({});Se la risposta non ha esito positivo, viene inviata una richiamata con un codice di errore.
myCallback({"error":"invalid_token"});Revocare i token con Apex
Per revocare i token con Apex, utilizzare il metodo revokeToken(type,
AuthToken) nella classe Auth.OauthToken. Vedere la classe OauthToken nella Guida Apex Reference Guide.
