Adding for handling proxy-based errors

This commit is contained in:
Kevin Glisson 2015-06-25 18:08:04 -07:00 committed by kevgliss
parent 6b5383633d
commit 8a6abc6f82
2 changed files with 10 additions and 3 deletions

View File

@ -98,6 +98,10 @@ def login_required(f):
try:
token = request.headers.get('Authorization').split()[1]
except Exception as e:
return dict(message='Token is invalid'), 403
try:
payload = jwt.decode(token, current_app.config['TOKEN_SECRET'])
except jwt.DecodeError:
return dict(message='Token is invalid'), 403
@ -108,7 +112,7 @@ def login_required(f):
g.current_user = user_service.get(payload['sub'])
if not g.current_user.id:
if not g.current_user:
return dict(message='You are not logged in'), 403
# Tell Flask-Principal the identity changed

View File

@ -45,11 +45,14 @@ class marshal_items(object):
return marshal(resp, self.fields)
except Exception as e:
current_app.logger.exception(e)
# this is a little weird hack to respect flask restful parsing errors on marshaled functions
if hasattr(e, 'code'):
if hasattr(e, 'data'):
return {'message': e.data['message']}, 400
else:
current_app.logger.exception(e)
return {'message': 'unknown'}, 400
else:
return {'message': e.message}, 400
return wrapper