应用jwt auth包装器时,flask-cors包装器不起作用。
我正在尝试使用Flask构建一个api网站,并Flask-jwt
用来提供令牌授权。
如果我在Apache中执行CORS(使用mod_headers来添加Allow-Access标头),则授权工作正常
Header set Access-Control-Allow-Origin "*"
但是,我想拥有更详细的访问控制,而不仅仅是使用通配符。我查看了flask-
cors
,这是一个很好的包装器,用于检查来源并发送标头。现在我的路线看起来像这样(并且在Apache设置中没有标题操作)
@app.route('/protected/place')
@cross_origin(headers=['Content-Type']) # Send Access-Control-Allow-Headers
@jwt_required()
def my_view_func():
do something
但是现在,如果我通过javascript发出http请求,则不会从服务器获得Access-
Control标头响应。(但是,如果我手动发布(例如进行卷曲),我仍然可以看到跨源插件工作和访问控制标头)
当我删除@jwt_required
包装器时,cross_origin包装器功能正常,它将给我响应。当应用jwt_required包装器时,从服务器看不到任何响应。
我正在使用chrome调试我的客户页面。BTW
我试图更改包装器的顺序,但无济于事。
如果身份验证失败,是否有可能cross_origin包装器将不发送访问控制标头?
两个包装器的源代码:
flask-jwt:
https ****: //github.com/mattupstate/flask-
jwt/blob/master/flask_jwt/ init
.py
flask-cors:https :
//github.com/wcdolphin/flask -cors / blob / master /
flask_cors.py