2017-07-19 19 views
5

私はおそらく単純で簡単なことをしようとしています:クッキーを設定してください!しかし、ブラウザ(ChromeとSafariでテスト済み)は単純に無視しています。 だから、レスポンスヘッダは次のようになります。ブラウザが応答ヘッダーからクッキーを保持しない

Access-Control-Allow-Credentials:true 
Access-Control-Allow-Origin:* 
Connection:keep-alive 
Content-Encoding:gzip 
Content-Type:application/json; charset=utf-8 
Date:Wed, 19 Jul 2017 04:51:51 GMT 
Server:nginx 
Set-Cookie:UserAuth=<some jwt>; Path=/; Domain=10.10.1.110; Expires=Wed, 19 Jul 2017 12:51:51 GMT; HttpOnly; Secure 
Transfer-Encoding:chunked 
Vary:Origin 

を行い要求がwithCredentials=trueが含まれます。 しかし、ChromeのCookieセクションは空です。私はドメインを完全に削除しようとしましたが、パスを削除することはできますが、私が考えることができるすべての設定が、ブラウザはボールを再生しません。

私には何が欠けていますか?

+0

Cookieを暗号化された接続を介してアプリケーションに返すだけであることをブラウザに指示する 'Secure'フラグを設定します。あなたの接続はこの必須要件を満たしていますか? –

+0

はい、接続はhttpsを超えています。 –

+0

クロスオリジン要求に対して 'XMLHttpRequest'オブジェクトで' withCredentials = true'を使用すると、 'Access-Control-Allow-Origin'が原点を許可するために' * 'を使用することはできません。クロスオリジンデータをリクエストしようとしていますか? 'Access-Control-Allow-Origin'に明示的にドメイン名を追加しようとするかもしれません。 –

答えて

0

したがって、元のリクエストには、XMlHttpRequest設定オブジェクトで設定されているのではなく、リクエストヘッダーとして 'withCredentials = true'があることがわかりました。

0

あなたのクッキーが表示されます HttpOnly; 安全です。クッキーを生成するときにHttpOnlyのフラグを使用して

は、secureフラグの目的は、伝送のために権限のない者によって観察されることからクッキーを防ぐために保護されたクッキー

にアクセスするクライアント側のスクリプトのリスクを軽減しますクッキーはクリアテキストで表示されます。 セキュアフラグを設定することにより、ブラウザは暗号化されていないチャネルを介してクッキーの送信を防止します。

TLSレイヤのセキュアフラグを使用してHTTPを通過すると、Cookieが中断されます。 あなたの好みを確認し、それに応じてクッキーの設定をしてください。

関連する問題