Questa guida illustra la procedura per ottenere e rinnovare i token di accesso utilizzando il flusso OAuth 2.0 con Refresh Token via API di Zendesk.
Nota sulla sicurezza: I token API statici sono soggetti a deprecazione a favore del protocollo OAuth 2.0. Con questo metodo, l'Access Token ha validità temporanea (es. 8 ore) e viene rigenerato tramite Refresh Token senza richiedere nuovamente l'accesso interattivo dell'utente.
Fase 1: Configurazione del Client OAuth in Zendesk
- Accedi al Centro amministrativo (
https://{subdomain}.zendesk.com/admin). - Nel menu laterale, seleziona App e integrazioni > API > API di Zendesk.
- Apri la scheda OAuth Client e clicca su Aggiungi client OAuth (oppure modificane uno esistente).
- Imposta il tipo di client come Riservato (Confidential).
- Configura l'URL di reindirizzamento (Redirect URI) su cui la tua applicazione riceverà il codice di autorizzazione.
- Salva e annota l'Identificatore univoco (Client ID) e il Secret (Client Secret) generato.
Fase 2: Generazione dell'Authorization Code (Consenso Utente)
Fai aprire all'utente o all'amministratore il seguente URL nel browser per approvare l'accesso dell'applicazione:
https://{subdomain}.zendesk.com/oauth/authorizations/new?response_type=code&client_id={client_id}&redirect_uri={redirect_uri}&scope=read%20writeDopo la conferma, l'utente verrà reindirizzato al tuo URI con il parametro di autorizzazione:
https://tuodominio.it/oauth/callback?code=AUTH_CODE_GENERATOFase 3: Scambio del Codice per ottenere l'Access Token e il Refresh Token
Invia una richiesta POST da backend verso l'endpoint token di Zendesk per scambiare il codice ricevuto:
curl -X POST https://{subdomain}.zendesk.com/oauth/tokens \
-H "Content-Type: application/json" \
-d '{
"grant_type": "authorization_code",
"code": "AUTH_CODE_GENERATO",
"client_id": "{client_id}",
"client_secret": "{client_secret}",
"redirect_uri": "{redirect_uri}",
"scope": "read write"
}'Esempio di Risposta JSON:
{
"access_token": "eyJhbGciOi...",
"token_type": "Bearer",
"expires_in": 28800,
"refresh_token": "def50200...",
"scope": "read write"
}Importante: Salva sia
access_token che refresh_token in un archivio cifrato sicuro del tuo backend.Fase 4: Rinnovo dell'Access Token via API (Utilizzo del Refresh Token)
Quando l'access_token scade (errore 401 Unauthorized o dopo la scadenza di expires_in), rinnova il token eseguendo la seguente chiamata diretta:
curl -X POST https://{subdomain}.zendesk.com/oauth/tokens \
-H "Content-Type: application/json" \
-d '{
"grant_type": "refresh_token",
"refresh_token": "{tuo_refresh_token_salvato}",
"client_id": "{client_id}",
"client_secret": "{client_secret}"
}'Risposta con il nuovo token attivo:
{
"access_token": "eyJhbGciOi_NUOVO_TOKEN...",
"token_type": "Bearer",
"expires_in": 28800,
"refresh_token": "def50200_NUOVO_O_CONFERMATO...",
"scope": "read write"
}Rotazione del Refresh Token: Se il payload di risposta include un nuovo valore per
refresh_token, aggiornalo immediatamente nel database sostituendo quello precedente.
Commenti
0 commenti
Questo articolo è chiuso ai commenti.