【发布时间】:2019-09-16 16:52:30
【问题描述】:
我有我的 ionic 作为前端,它在每个请求中附加一个承载令牌。我的 Tornado 服务器已针对 CORS 进行了配置。问题是当我激活我的装饰器以检查该请求是否具有“授权”标头时,我不知道为什么,该标头消失了。没有“授权”标题。但是,如果我禁用此标头,一切正常,龙卷风会向我显示该标头。
有什么想法吗?
我重写了 RequestHandler set_default_headers 方法
使用这些标题:
set_default_headers(self):
self.set_header("Access-Control-Allow-Origin", "*")
self.set_header("Access-Control-Allow-Headers", "authorization")
self.set_header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS')
装饰器
class EvaluationHandler(RequestHandler)
def get(self):
print(handler.request.headers) <--- Good headers
我的令牌装饰器来检查它:
def jwtauth(handler_class):
def wrap_execute(handler_execute):
def require_auth(handler, kwargs):
auth = handler.request.headers.get('Authorization', None)
print(handler.request.headers) <---- Bad Headers
print(auth)
if auth:
if not loginRepository.validToken(auth):
return_header_error(handler)
else:
return_header_error(handler)
handler._transforms = []
handler.write(MISSING_AUTHORIZATION_KEY)
handler.finish()
return True
def _execute(self, transforms, *args, **kwargs):
try:
require_auth(self, kwargs)
except Exception:
return False
return handler_execute(self, transforms, *args, **kwargs)
return _execute
handler_class._execute = wrap_execute(handler_class._execute)
return handler_class
编辑:问题可能是自定义装饰器采用的是自己的标头配置,但我不知道该怎么做
【问题讨论】:
标签: rest ionic-framework cors tornado