ブラウザのローカルホストに HTTPOnly Cookie が設定されていません
問題:
REST API のログインエンドポイントはペイロード (JWT) を含む HTTPOnly Cookie を送信しますが、Cookieブラウザに設定されていません。このアプローチは何年も機能していましたが、最近停止しました。この問題はローカルホスト環境に限定されています。 Postman テストにより、Cookie が期待どおりに設定されていることを確認します。
使用されるアプローチ:
調査:
Go API と Node API は両方とも、HTTPOnly フラグが設定された Set-Cookie ヘッダーを正しく送信します。これは、問題がブラウザまたは fetch() メソッドにある可能性があることを示しています。
解決策:
この問題は、資格情報を追加することで解決されました: "include" プロパティフロントエンド JavaScript の fetch() メソッドに追加します。このプロパティは、ブラウザに Cookie の送受信を指示します。
理由:
HTTPOnly Cookie は、クライアント側の JavaScript が Cookie のコンテンツにアクセスできないように設計されています。ブラウザは、デフォルトで XHR または fetch() リクエストで Cookie を送信しないことでこれをサポートします。 credentials: "include" プロパティを追加すると、ブラウザーはリクエストとともに Cookie を送信するように明示的に指示され、サーバーがそれを受信して適切に設定できるようになります。
追加メモ:
以上が私の HTTPOnly Cookie が Localhost に設定されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。