0

在每个端点被命中之前,令牌被授权。我创建了与以下相同的应用程序

os.environ[TOKENINFO_FUNC] =  some_function
add.api(openapi.yaml)
app.add_error_handler(OAuthResponseProblem, render_unauthorized)

def render_unauthorized:
  return customized response 
def some_function:
  raise OAuthResponseProblem

这是挂钩异常的正确方法吗?我收到上述代码的错误。这里 render_unauthorized 没有被调用。我想验证令牌并发送端点用户自定义响应。提前致谢。

4

2 回答 2

0

抱歉,如果为时已晚。我遇到了同样的问题。您需要做的就是使用您的自定义字符串引发未经授权的异常。

import jwt    
from werkzeug.exceptions import Unauthorized    

# This is your TOKENINFO_FUNC
def decode_token(jwt_token):
  try:
    payload = jwt.decode(jwt_token, 'SECRET_KEY', algorithms=['HS256'])
    return payload
  except jwt.ExpiredSignatureError:
    raise Unauthorized('Token expired. Please log in again.')
  except jwt.InvalidTokenError:
    raise Unauthorized('Invalid token. Please log in again.')
于 2021-02-08T13:47:25.913 回答
0

您需要实施x-tokenInfoFunc. 在您的函数中,您可以发送自定义响应。

于 2020-03-17T19:04:59.410 回答