Devi farlo basandoti su ciò che vedi nel tuo sistema. I due approcci di base sono di farlo una volta o di rendere il tuo codice aggiustato al volo. Il primo è ovviamente molto più facile da fare ma un po 'meno resiliente.
Farlo una volta significa registrare la differenza di tempo per ciascun paio di server per un po 'e vedere cosa ottieni. Questo potrebbe richiedere un po 'di tempo, dal momento che si desidera vedere se si risincronizzano a NIST o simili a intervalli. Ma anche molto presto dovresti avere un'idea se le differenze di orario sono coerenti o meno. Quindi hard-code in un valore ragionevole. Il salto più grande è probabilmente quello di correzione, ma potresti non vederlo mai accadere, quindi dovrai indovinare "il nostro sito è tranquillo durante la notte ma è probabile che il salto avvenga tra le 2:00 e le 6:00 AEST" è probabile).
La versione più resiliente ma più codificata è quella di fare quanto sopra ma mappare l'offset effettivo ai valori osservati più di recente. Se il tuo timeout è di un paio d'ore e vedi che l'altro sistema è andato alla deriva da un secondo al mese, costruisci quello alla tua pre-scadenza. Diventa complesso solo quando stai cercando di indovinare il punto in cui l'altro sistema salterà un paio di secondi indietro a causa di una correzione mensile dell'orologio.
Penso che quest'ultimo sia eccessivo se non stai osservando i salti entro un fattore pari a 10 del tempo di scadenza totale. A quel punto vorrai buttare via il 20% del tempo totale, che è un aumento del 25% del traffico OAuth. Quindi potrebbe essere utile scrivere più codice nel tentativo di ridurlo. Ma anche in questo caso, potrebbe non essere il più grande risparmio di larghezza di banda che puoi ottenere per il tuo tempo di programmazione.