我们正计划将 Box v1 集成迁移到 v2。我们的集成实现包括 API 调用同时访问来自不同服务器的用户 Box 帐户和文件。
随着 v2 和刷新令牌的引入,我们想知道是否可以通过同一用户帐户从多个服务器同时发出多个刷新令牌请求。
此外,由于多次刷新调用,我们还想知道在任何给定时间每个用户是否有可能拥有多个访问密钥。
感谢阿萨夫的帮助
我们正计划将 Box v1 集成迁移到 v2。我们的集成实现包括 API 调用同时访问来自不同服务器的用户 Box 帐户和文件。
随着 v2 和刷新令牌的引入,我们想知道是否可以通过同一用户帐户从多个服务器同时发出多个刷新令牌请求。
此外,由于多次刷新调用,我们还想知道在任何给定时间每个用户是否有可能拥有多个访问密钥。
感谢阿萨夫的帮助
我们建议您在服务器之间使用某种协调来管理身份验证令牌和刷新令牌。虽然用户可以为同一个服务拥有多个访问令牌,但他们必须进行多次身份验证才能获得它们。您不能从单个 auth-token/refresh-token 对中铸造额外的 auth 令牌。
这是我们推荐的。
在数据库中创建一对加密列来存储身份验证令牌、刷新令牌、“token_expires”的日期时间和“token_refresh_in_progress”的标志。通过用户 ID 识别它。
编写代码,以便在您即将拨打电话时,如果您接近(例如,在一分钟内)令牌到期日期时间,而不是拨打您的电话,您检查是否已设置刷新标志,或者如果已经有一个新的令牌对。如果集群中的其他服务器没有该标志,请设置您正在进行刷新的标志。进行 refresh-grant 调用,并使用新的对更新数据库,当然还要重置标志。