問題タブ [flask-session]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2554 参照

reactjs - Flask セッションは、反応フロント エンド アプリケーションで (set-cookie 応答ヘッダーを使用して) Cookie を作成できません

問題

サーバー サイド セッション (PSQL データベースに保存) を使用しようとしていますが、リクエスト間で保持されません。

説明

私はアプリケーションをローカルで実行しており、2 つの部分で構成されています。

  1. MY_IP:2501で実行されているバックエンド
  2. MY_IP:3000で実行されているフロントエンド

私の理解では、Flask はセッションを PSQL の「セッション」テーブルに保存し (サーバー側のセッションを保存しているため)、その特定の行の ID が応答ヘッダーの形式でクライアントに送信されます。クッキー"。

上記のすべてが機能していますが、React フロントエンド (またはブラウザー) がこのヘッダーを受信すると、セッション ID がフロントエンドに保存されず、フロントエンドが送信できないため、ヘッダーから Cookie が作成されません。関連付けられたセッション データをフェッチできず、毎回空のセッションになるバックエンドと同じです。

:(

これまでに試したもの..

  1. 応答を返す際にすべてのタイプのヘッダーを許可するようにしました。

  2. バックエンドだけでなくフロントエンドからも withCredentials ヘッダー属性を許可するようにしました。

  3. 「SESSION_COOKIE_HTTPONLY」構成プロパティを使用して、セッションから HttpOnly パラメータを削除しました

  4. フロントエンドと同じ「SESSION_COOKIE_DOMAIN」の設定完了

ノート

  1. POSTMAN 経由で API を呼び出すと、Cookie が POSTMAN に保存されるため、セッションは持続します。

  2. chrome --disable-web-security でアプリケーションを実行すると、それも機能します。