Вызов Box API с действительным токеном доступа пользователя

Я использую JWT для аутентификации с помощью Box API, потому что я не хочу, чтобы мои пользователи должны были явно входить в систему со своими учетными данными (как вы должны это делать с OAuth2).

Моя проблема в том, что токен доступа пользователя действителен только в течение 60 секунд.

Итак, означает ли это, что каждый раз, когда я делаю запрос к Box API (например, перебирая некоторые папки, чтобы найти определенный файл), мне нужно запрашивать новый токен доступа пользователя, чтобы убедиться, что он все еще действителен?

Насколько я понимаю, в JWT нет токенов обновления, поэтому кажется, что это единственное решение?

60 секунд - это очень короткий промежуток времени. Я не хочу отслеживать время каждого запроса, поэтому кажется, что единственный другой вариант — заново создавать токен для каждого запроса API. Это кажется нелепым.


person Sofia Clover    schedule 21.09.2016    source источник


Ответы (1)


Моя проблема в том, что токен доступа пользователя действителен только в течение 60 секунд.

Токены доступа Box JWT действительны в течение примерно 60 минут. Когда вы получаете токен доступа JWT, свойство expires_in точно сообщит вам, как долго токен действителен в секундах. В приведенном ниже примере срок действия токена истекает через 4169 секунд или ~69 минут.

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

Я не хочу отслеживать время каждого запроса, поэтому кажется, что единственный другой вариант — заново создавать токен для каждого запроса API.

Вместо того, чтобы отслеживать время истечения срока действия, вы можете отправлять запросы API до тех пор, пока не получите ответ 401, затем получите новый токен доступа и, наконец, затем повторите неудачный запрос(ы). Оба варианта требуют усилий по кодированию. К счастью, некоторые SDK сделают все это за вас.

person John Hoerr    schedule 27.10.2016