1

我正在使用 JWT 通过 Box API 进行身份验证,因为我不希望我的用户必须使用他们的凭据显式登录(就像使用 OAuth2 一样)。

我的问题是用户访问令牌仅在 60 秒内有效。

那么,这是否意味着每次我向 Box API 发出请求(例如 - 遍历某些文件夹以查找特定文件)时,我都需要请求新的用户访问令牌以确保它仍然有效?

据我了解,JWT 没有刷新令牌,所以这似乎是唯一的解决方案?

60秒是很短的时间。我不想跟踪每个请求的时间,所以似乎唯一的其他选择是必须为每个 API 请求重新创建令牌。这似乎很荒谬。

4

1 回答 1

1

我的问题是用户访问令牌仅在 60 秒内有效。

Box JWT 访问令牌的有效期约为 60分钟。当您获得 JWT 访问令牌时,该expires_in属性将准确地告诉您令牌有效的时间(以秒为单位)。在下面的示例中,令牌将在 4169 秒或约 69 分钟后过期。

{
   "access_token": "mNr1FrCvOeWiGnwLL0OcTL0Lux5jbyBa",
   "expires_in": 4169,
   "restricted_to": [],
   "token_type": "bearer"
}

我不想跟踪每个请求的时间,所以似乎唯一的其他选择是必须为每个 API 请求重新创建令牌。

您可以发出 API 请求,直到收到 401 响应,然后获取新的访问令牌,最后重试失败的请求,而不是跟踪 epxiration 时间。这两个选项都需要编码工作。幸运的是,一些 SDK 将为您完成所有工作。

于 2016-10-27T19:00:31.190 回答