2016-05-04 6 views
1

Я использую API-интерфейс Box и пытаюсь интегрировать его с помощью Box SDK, но я запутался в аутентификации ошибок. По какой-то причине мой JWT аутентификации продолжает неудачу и я бегу в это:Python Box-SDK JWT Exp калькулятор выключен?

BoxOAuthException: 
    Message: {"error":"invalid_grant","error_description":"Current date\/time MUST be before the expiration date\/time listed in the 'exp' claim"} 
    Status: 400 
    URL: https://api.box.com/oauth2/token 
    Method: POST 

Команда Я бегу это:

access_token = auth.authenticate_instance() 

ответ

0

Просто удалите метку времени. Вот как выглядел мой код для JWT с полем, используя библиотеку JWT JavaScript.

var token = jwt.sign({ 
 
    iss: tokenAPI, 
 
    sub: enterpriseID, 
 
    box_sub_type: "enterprise", 
 
    aud: "https://api.box.com/oauth2/token", 
 
    jti: sessionToken, 
 
    exp: expiringTime 
 
}, { key: privateKey, passphrase: secret }, { algorithm: 'RS256', noTimestamp: true });

Надеется, что помогает.

0

Я объясню, почему вы видите эту ошибку, и затем, как ее исправить.

Когда Box Python SDK генерирует запрос для токена доступа, он использует текущее время UTC как часть этого запроса. Если время Unix на вашем локальном компьютере и сервере Box не синхронизировано, вы увидите ошибку утверждения exp.

Чтобы устранить эту ошибку, обновите время Unix на вашем компьютере до match the Unix time from this site. Затем повторите запрос, чтобы создать токен доступа.