Я уже пробовал читать документы, а также попробовать изменение поведения по умолчанию https://flask-jwt-extended.readthedocs.io/en/latest/changing_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, поскольку я вижу ошибку всякий раз, когда я не использую это (в моем db это другое, но нет никаких проблем.
Я пробовал следовать этому руководству, и он отлично работает на моей стороне (как и его исходный код), но я вижу, что у этого нет исключения перехвата также на 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 вместо «Внутренняя ошибка сервера»
edit: Я не специалист в программировании или что-то в этом роде, новичок, который хотел попрактиковаться в Python в безопасной веб-разработке. Я еще не совсем понимаю, как работает декоратор с точки зрения приложения и т.д., поэтому я не знаю, настраивают ли другие пакет flask-jwt-extended для решения таких задач.