我正在使用JWT对Box API进行身份验证,因为我不希望我的用户必须使用他们的凭据显式登录(因为您必须使用OAuth2)。
我的问题是用户访问令牌仅在60秒内有效。
那么,这是否意味着每次我向Box API发出请求(例如 - 遍历某些文件夹以查找特定文件)时,我需要请求新的用户访问令牌以确保它仍然有效?
根据我的理解,JWT没有刷新令牌,所以看来这是唯一的解决方案?
60秒是非常短的时间。我不想跟踪每个请求的时间,因此似乎唯一的另一个选择是必须为每个API请求重新创建令牌。这看起来很荒谬。
答案 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将为您完成所有工作。