在分布式系统中维护 Box 刷新/访问令牌

Maintaining Box refresh / access tokens in a disrtibuted system

我们有多个服务器访问 Box,因此我们关闭了自动刷新。

connect.setMaxRequestAttempts(1);
connect.setAutoRefresh(false);

从单元测试中收集的假设:

鉴于此,您似乎可以有多个 readers,一个作者更新令牌对,即使 reader 获得前一个令牌对,也应该没问题(用于访问) .

我们确保系统中只有一个线程更新令牌,但尽管锁定了令牌更新,但仍存在 401 错误问题。上面的假设似乎有问题。

您的假设很接近。这是预期的行为:

  • 令牌有效期为一小时,除非请求新令牌并且 用过的。
  • 如果请求新令牌但未使用,则旧令牌是 仍然有效(假设不到一小时)。
  • 如果请求并使用了新令牌,则旧令牌是 无效。