Почему мой сеанс Flask React.js не работает?

Я делаю вход для приложения в ответ с бэкэндом в фляге, но сеанс не работает.

Приложение фляги работает на удаленном сервере на pythonanywhere, и я тестирую приложение реакции на своем локальном хосте: 3000

Вот код для фляжного приложения:

    app = Flask(__name__)
    
    app.config["SESSION_PERMANENT"] = True
    app.config["SESSION_TYPE"] = "filesystem"
    app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(hours=5)
    Session(app)
    
    CORS(app, supports_credentials = True, resources = {r"/webapp/*": {"origins": "http://localhost:3000/"}})
    
    @app.route("/webapp/login", methods = ["POST"])
    def login():
    
        user = request.get_json(force=True)
    
        Email = user.get("email", "")
        Password = user.get("password", "")
    
        login = Login.login(Email, Password)
    
        if login["Success"]:
    
            session["email"] = Email
    
        return login
    
    @app.route("/webapp/checksession", methods = ["GET"])
    def checksession():
    
        sessionEmail = session.get("email", "")
    
        if sessionEmail == "":
    
            return utils.returnResult(False, "Session not valid")
    
        return utils.returnResult(True, "")

А в приложении React я использую axios для входа в систему и проверки сеанса на сервере, например:

    axios.get(APIURL + CHECK_SESSION, {withCredentials: true})
    .then(response => {
    
        console.info(response.headers);
        
        setSession(response.data.success)
        setCheckedSession(true)
        
    })
    .catch(err => {
    
        setSession(false)
        setCheckedSession(true)
    
        if (err.response) {
    
        }
        else {
    
            window.alert('Could not establish a connection to the server!');
        }
    });

В инструментах разработчика мы видим, что сервер отправляет сеанс cookie:

Но когда я проверяю файлы cookie для приложения, там ничего нет:

(извините за португальца)

И в обработчике обещаний axios, когда я печатаю заголовки ответа, это все, что я получаю:

Таким образом, каждый раз, когда реагирующее приложение проверяет, есть ли у пользователя действительный сеанс на сервере, сервер создает новый сеанс, что означает, что реагирующее приложение не сохраняет и не отправляет файл cookie на сервер.

Кроме того, когда я тестирую это с почтальоном, все работает нормально.

Я искал во всех местах, и я не могу найти ответ на этот вопрос. Может ли кто-нибудь помочь мне понять, что я делаю неправильно, пожалуйста?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
91
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Оказывается, в сеансе фляги отсутствовали конфигурации:

app.config["SESSION_COOKIE_SAMESITE"] = "None"
app.config["SESSION_COOKIE_SECURE"] = True

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