Сессии Flask не работают при вызове из React

В настоящее время я использую графен в качестве API для Flask:

from flask import Flask
from flask_graphql import GraphQLView

from .database.base import db_session
from .schema import schema

from flask_cors import CORS
from flask_session import Session

app = Flask(__name__)
app.config.from_object('config.Config')

CORS(app, supports_credentials=True)
Session(app)


app.add_url_rule('/graphql',
                 view_func=GraphQLView.as_view('graphql',
                                               schema=schema,
                                               graphiql=True))

Я настроил мутацию графена, которая связана с проверкой входа в систему и сохраняет идентификатор пользователя в сеансе фляги.

from flask import session

class LoginWorker(graphene.Mutation):
    """Mutation to get a Worker logged in"""
    worker = graphene.Field(lambda: Worker)
    error = graphene.Field(lambda: Error)

    class Arguments:
        worker_login_data = LoginWorkerInput()

    def mutate(self, info, worker_login_data):
        # Login Verification Here

    session['userId'] = worker.id
    return LoginWorker(worker=worker)

Затем я пытаюсь сделать запрос из React, используя URQL:

const router = useRouter();
  const [, registerWorker] = useLoginWorkerMutation();
  return (
    <>
      <Wrapper variant="small">
        <Formik
          initialValues={{ username: "", password: "", workerId: "" }}
          onSubmit={async (values, { setErrors }) => {
            const response = await registerWorker(values);
            if (response.data.loginWorker.error) {
              const field: string = response.data.loginWorker.error.field;
              const message: string = response.data.loginWorker.error.message;
              const errorMap: Record<string, string> = {};
              errorMap[field] = message;
              setErrors(errorMap);
            } else if (response.data.loginWorker.worker) {
              router.push("/");
            }
          }}
        >
      /* Form Stuff Here */
      </Formik>
  );

Я также установил параметры выборки для использования учетных данных: "включить"

const client = createClient({
  url: "http://127.0.0.1:5000/graphql",
  fetchOptions: {
    credentials: "include",
  },
});

Однако сеансы по-прежнему не отображаются в разделе файлов cookie браузера. Однако он работает, когда я запускаю запрос наlocalhost:my_flask_app_port/graphql.

0 ответов

Другие вопросы по тегам