Flask cors并没有按照配置否认起源



我试图将flask cors(3.0.8(与flask restplus(0.13.0(一起使用,允许一些来源,但拒绝其他来源,但cors不会拒绝任何跨来源请求。

我的体系结构是以一种使用3个文件来初始化我的应用程序的方式处理的:

1.app/__init__py(声明我的蓝图(

from flask_restplus import Api
from flask import Blueprint
...
BLUEPRINT = Blueprint("api", __name__)
API = Api(BLUEPRINT)
...

2.app/main/__init__.py(带有我的create_app函数,带有CORS(

...
def create_app()
app = Flask(__name__)
CORS(app, resources={r"/*": {"origins": r".*.mydomain.com"}})
...

3.manage.py(包含我的主进程(

from app.main import create_app
from app import BLUEPRINT
...
APP = create_app(os.getenv("APP_ENV", "dev"))
APP.register_blueprint(BLUEPRINT)
APP.app_context().push()
...
if __name__ == "__main__":
APP.run(host="0.0.0.0", port=80)

这种方法正在初始化我的应用程序,但我的API允许来自所有域的所有请求,而不是像配置的那样只允许来自something.my-domain.com的请求。

有人已经有这个问题了?

我认为您没有用AppFactory模式正确初始化扩展。

https://github.com/corydolphin/flask-cors/blob/master/flask_cors/extension.py#L131

app/main/__init__.py中,尝试:

...
cors = CORS()

def create_app()
app = Flask(__name__)
cors.init_app(app, resources={r"/*": {"origins": r".*.mydomain.com"}})
...

完整示例:https://gitlab.com/testdriven/flask-react-auth/blob/master/services/users/project/init.py

使用此:

cors.init_app(app, resources={r"*": {"origins": "*"}})

相关内容

  • 没有找到相关文章

最新更新