python-3.x - 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 的请求。
有人已经有这个问题了吗?
解决方案
我认为您没有使用 App Factory 模式正确初始化扩展。
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
推荐阅读
- android - 片段中的 setBackgroundColor recycleView
- javascript - 修复不同本地主机之间的“cors”请求。405(不允许的方法)
- android - 在网格视图中显示图像和文件夹?
- powerbuilder - 用户键入时Powerbuilder下拉数据窗口过滤器?
- java - 在 null th:each 上找不到属性或字段“产品”
- java - Java:替换集合类型字段的空值空集合
- mysql - 如果两个或多个用户在 mysql 中为同一个表发送插入查询会发生什么?
- python - 如何规范化 1 到 10 之间的数组?
- hibernate - Spring Boot 通用 DAO
- angular - 作为@Input 传递给子级的值的双向绑定