Closed 2TQMdj closed 3 years ago
Проблема в том, что функция _is_expire() не срабатывает.
"verify_signature": False
отменяет проверку испортился ключ или нет. Должно быть True
. Но в этом случае появляется ошибка jwt.exceptions.InvalidAlgorithmError: Algorithm not supported
@Krukov Вижу следующее решение:
def _is_expire(token):
token_data = jwt.decode(token, options={"verify_signature": False})
exp = datetime.utcfromtimestamp(token_data['exp'])
now = datetime.utcnow()
return True if now >= exp else False
Кинул Pull request
@2TQMdj Можно попросить трейсбек с тем как падает авторизация? И укажите пожалуйста какая версия pyjwt у вас установлена? и если pyjwt > 2 версии то попробуйте поставить 1.7.1
@dinodigital verify_signature должно быть False так как мы не хотим проверять подпись в jwt, но нам нужно провалидировать exp как вы верно подметили. Но pyjwt это и сам делает https://github.com/jpadilla/pyjwt/blob/2.0.0/jwt/api_jwt.py#L164
Pyjwt 2.0 вышла совсем недавно и с ней я не тестировал.
@2TQMdj Можно попросить трейсбек с тем как падает авторизация? И укажите пожалуйста какая версия pyjwt у вас установлена? и если pyjwt > 2 версии то попробуйте поставить 1.7.1
@dinodigital verify_signature должно быть False так как мы не хотим проверять подпись в jwt, но нам нужно провалидировать exp как вы верно подметили. Но pyjwt это и сам делает https://github.com/jpadilla/pyjwt/blob/2.0.0/jwt/api_jwt.py#L164
Pyjwt 2.0 вышла совсем недавно и с ней я не тестировал.
У меня лично вылетает ошибка unauthorised exception от сервера Amo. (Трейсбек смогу только завтра, когда токен протухнет). Я проверял, проблема именно в _is_expired().
pyjwt версия 2.0
@dinodigital Спасибо
Вот бага в pyjwt https://github.com/jpadilla/pyjwt/issues/599
У меня pywt не зафрижена... Что бы проблемы не было поставте pyjwt==1.7.1
@2TQMdj Вообщем фикс всеравно внесли, можно или обновить эту библиотеку amocrm_api-2.3.1 или даунгрейдить pyjwt до 1.7.1
Даунгрейд помог, спасибо!
Авторизируюсь как указано в примере, сутки все работает а потом слетает авторизация пока не укажу новый код авторизации. Подскажите, в чем может быть проблема?