使用有效的用户访问令牌调用Box API

时间:2016-09-21 06:44:30

标签: jwt box-api box boxapiv2 refresh-token

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

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

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

根据我的理解,JWT没有刷新令牌,所以看来这是唯一的解决方案?

60秒是非常短的时间。我不想跟踪每个请求的时间,因此似乎唯一的另一个选择是必须为每个API请求重新创建令牌。这看起来很荒谬。

1 个答案:

答案 0 :(得分: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将为您完成所有工作。