Я уже пробовал читать документы, а также попробовать изменить поведение по умолчанию https://flask -jwt-extended.readthedocs.io / en / latest / change_default_behavior.html для устранения ошибки (ссылка показываеткак обрабатывать токен с истекшим сроком действия) и искать в google все в каждой комбинации ключевых слов, которые я мог сделать, но, похоже, ни у кого нет примера по этому поводу.
Я пытался использовать @ jwt.revoked_token_loader для обработки RevokedTokenError, но, похоже, это нене работает, как я применил это так
@jwt.revoked_token_loader
def revoked_token_response(revoked_token):
jwtkn = revoked_token['jti']
return jsonsify({
'msg': 'token {} already been revoked!'.format(jwtkn)
)}, 401
на самом деле, я не знаю точно, как пример в ссылке для обработки просроченных токенов имел параметр 'expired_token', это самообъявление какчто я делал выше на 'revoked_token' ??Насколько я знаю, 'jti' похоже на значение по умолчанию в пакете flask-jwt-extended, так как я вижу ошибку всякий раз, когда я не использую это (в моей базе данных оно отличается, но проблем вообще нет.
Я пытался следовать этому уроку, и он отлично работает на моей стороне (также как и его исходный код), но я вижу, что у этого нет исключения ловушки также на Revoke Tokens https://codeburst.io/jwt-authorization-in-flask-c63c1acf4eeb
Я использую почтальон, и если я получу эту ссылку
i do login
i use the access token generated to access protected routes ('/secrets')
i do logout
i use again the access token generated to access protected routes
после последней, я получу эту ошибку на моей стороне сервера (ide):
....flask_jwt_extended\utils.py", line 216, in verify_token_not_blacklisted
raise RevokedTokenError('Token has been revoked')
flask_jwt_extended.exceptions.RevokedTokenError: Token has been revoked
127.0.0.1 -- [02/Jul/2019 22:25:26] "GET /secrets HTTP/1.1" 500 -
в почтальоне, вот что я получаю:
{
'message': 'Internal Server Error'
}
моя цель - отправить пользовательский ответ json вместо 'Internal Server Error'
edit: я не волшебникна программировании или что-то в этом роде, новичок, который хотел попрактиковаться в Python по поводу защищенной веб-разработки. Я до сих пор не совсем понимаю, как декоратор работает с точки зрения приложения и т. д., поэтому я не знаю, подгоняют ли другие колбу.jwt-расширенный пакет для работы с такимингс.