ホームページ  >  記事  >  バックエンド開発  >  私の HTTPOnly Cookie が Localhost に設定されないのはなぜですか?

私の HTTPOnly Cookie が Localhost に設定されないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-25 05:02:11881ブラウズ

Why Aren't My HTTPOnly Cookies Being Set on Localhost?

ブラウザのローカルホストに HTTPOnly Cookie が設定されていません

問題:

REST API のログインエンドポイントはペイロード (JWT) を含む HTTPOnly Cookie を送信しますが、Cookieブラウザに設定されていません。このアプローチは何年も機能していましたが、最近停止しました。この問題はローカルホスト環境に限定されています。 Postman テストにより、Cookie が期待どおりに設定されていることを確認します。

使用されるアプローチ:

  • Go ファイバーと Node Express でログイン エンドポイントの核となる要素を実装します。
  • フロントエンドを削除して基本的なログインを行うform.

調査:

Go API と Node API は両方とも、HTTPOnly フラグが設定された Set-Cookie ヘッダーを正しく送信します。これは、問題がブラウザまたは fetch() メソッドにある可能性があることを示しています。

解決策:

この問題は、資格情報を追加することで解決されました: "include" プロパティフロントエンド JavaScript の fetch() メソッドに追加します。このプロパティは、ブラウザに Cookie の送受信を指示します。

理由:

HTTPOnly Cookie は、クライアント側の JavaScript が Cookie のコンテンツにアクセスできないように設計されています。ブラウザは、デフォルトで XHR または fetch() リクエストで Cookie を送信しないことでこれをサポートします。 credentials: "include" プロパティを追加すると、ブラウザーはリクエストとともに Cookie を送信するように明示的に指示され、サーバーがそれを受信して​​適切に設定できるようになります。

追加メモ:

  • HTTP リクエストに Axios を使用している場合、認証情報がそのリクエストに自動的に含まれます。
  • Node Express の場合、ブラウザが Cookie を設定できるように、リクエスト構成で withCredentials: true を設定する必要がある場合もあります。

以上が私の HTTPOnly Cookie が Localhost に設定されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。