У меня есть app.py для фляги, которая содержит все мои основные функции. Я создал файл server.py, как указано здесь: https://auth0.com/docs/quickstart/backend/python
В моем файле app.py с сервера я импортирую AuthError и require_auth. Затем я поставил @requires_auth перед своими функциями.
Когда у меня есть действующий jwt, он отлично работает. Когда JWT не действителен, он терпит неудачу. Сбой - это хорошо, потому что запросы не должны работать. Но ответ, который я получаю от моего API-интерфейса, - это «Внутренняя ошибка сервера», а не подробный ответ в разделе повышение AuthError в файле server.py.
Я получаю 2 ошибки:
Traceback (most recent call last):
File "C:\Users\ME\code\server.py", line 88, in decorated
issuer="https://"+AUTH0_DOMAIN+"/"
File "C:\Users\ME\lib\site-packages\jose\jwt.py", line 150, in decode
options=defaults)
File "C:\Users\ME\lib\site-packages\jose\jwt.py", line 457, in _validate_claims
_validate_exp(claims, leeway=leeway)
File "C:\Users\ME\lib\site-packages\jose\jwt.py", line 299, in _validate_exp
raise ExpiredSignatureError('Signature has expired.')
jose.exceptions.ExpiredSignatureError: Signature has expired.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\ME\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\ME\lib\site-packages\flask\app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\ME\lib\site-packages\flask_restful\__init__.py", line 480, in wrapper
resp = resource(*args, **kwargs)
File "C:\Users\ME\lib\site-packages\flask\views.py", line 88, in view
return self.dispatch_request(*args, **kwargs)
File "C:\Users\ME\lib\site-packages\flask_restful\__init__.py", line 595, in dispatch_request
resp = meth(*args, **kwargs)
File "C:\Users\ME\code\server.py", line 92, in decorated
"description": "token is expired"}, 401)
server.AuthError: ({'code': 'token_expired', 'description': 'token is expired'}, 401)
Как получить AuthError в качестве ответа на вызов, а не просто мою внутреннюю ошибку сервера?
Спасибо!