私は現在、ロードバランサーの背後にある複数のサーバーで実行される基幹業務 Web アプリケーション (ASP.NET MVC) に GMail 統合を実装しています。さらに、定期的なジョブを実行するために、スケジューラによって実行されるコンソール アプリケーションがあります。
複数のユーザーが Web アプリケーションを使用します。これはビジネスのバックオフィスです。ただし、顧客との電子メール通信に使用される GMail アカウントは 1 つだけです。その GMail アカウントへのアクセスは管理者によって承認されます (ユーザーは GMail アカウントに直接アクセスできません)。
単一のトークン ストアが必要になることはわかっています。
私の問題は、OAuth 2 リフレッシュ トークンを使用してアクセス トークンを更新するときに、同時実行の問題がないことを確認することです。
Google .NET OAuth2 ライブラリを使用して、更新がいつ行われるか (たとえば、イベントを確認することによって) を制御する機能が見当たりません。
各アクセスの前に有効期限を手動で確認できますが、もっと良い方法はありますか?
(他のサーバーを含む他のプロセスがリフレッシュ中にトークンを使用するのをブロックするという問題を解決する必要がありますが、それは別の問題です。)