Express バックエンドで CORS と Cookie-Parser を使用したサブドメイン Cookie の受信に問題が発生する
<p>現在 MERN (MongoDB、Express、React、Node.js) アプリケーションを開発していますが、Express バックエンドのサブドメインからの Cookie の受信で問題が発生しています。 CORS と Cookie 処理を設定しており、単純なローカルホストオリジンを使用する場合はすべて正常に動作しますが、サブドメインの処理に問題があります。 </p>
<p>私が行った手順と直面した問題の概要は次のとおりです: </p>
<p><strong>ログイン時に Cookie を設定します: </strong></p>
<pre class="brush:php;toolbar:false;">res.cookie("トークン", トークン, {
httpOnly: true、
同じサイト: "なし"、
パス: "/"、
安全: true、
});</pre>
<p>cors 設定を使用してこの Cookie を取得しようとすると、オリジンは次のようになります: </p>
<pre class="brush:php;toolbar:false;">app.use(
cors({
発信元: "http://localhost:3000",
資格情報: true、
})
);</pre>
<p>しかし、テストするときは、次のようにサブドメインの起点を使用します。 </p>
<pre class="brush:php;toolbar:false;">app.use(
cors({
発信元: "http://binbros.localhost:3000",
資格情報: true、
})
);</pre>
<p>フロントエンドの CORS にエラーはなく、Cookie はフロントエンドで正常に作成されます。しかし、この CORS 設定を使用して Cookie にアクセスしようとすると、Cookie を受け取りません。ただし、同じ方法と単純なローカルホストへの CORS セットアップを使用すると、問題なくすべての Cookie を正常に取得できます。 </p>
<p><code>console.log(req.cookies);</code></p>
<p>追記:
私がローカルホスト上にいて、オリジンがローカルホストである場合、
そしてクッキーをログに記録します
バックエンドで作成したものだけでなく、すべてのフロントエンド Cookie を取得できます
しかし
サブドメインのオリジンにいるときは、バックエンドで Cookie さえ受信しません。
私が作成したものはなく、フロントエンドからのものもありません</p>