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, как настроено.

У кого-то уже была эта проблема?


person Gerdson Silva    schedule 19.11.2019    source источник


Ответы (2)


Я не думаю, что вы правильно инициализируете расширение с помощью шаблона фабрики приложений.

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

person Michael    schedule 19.12.2019

Использовать это:

cors.init_app(app, resources={r"*": {"origins": "*"}})
person mamadshr    schedule 29.04.2021
comment
Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, почему и/или как этот код отвечает на вопрос, повышает его ценность в долгосрочной перспективе. - person n1colas.m; 30.04.2021