0

local-api.domain.com と local-web.domain.com の 2 つのサブドメインがあります。

local-web.domain.com には、AJAX 経由で local-api のログイン サービス (local-api.domain.com/authentication/login) を呼び出すページ (local-web.domain.com/test/authtest) があります。ドメイン.com. ログインは、ユーザーの投稿された資格情報をチェックし、それらが有効な場合は、ASP.Net フォーム認証を介してユーザーをログインさせます。サービスから返される生のレスポンスの例を次に示します。

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Set-Cookie: token=dsaaflkdaflkxEfrLEUH2Bsfdsjfdksfjdsklfj; expires=Sat, 11 Jan 2014 00:16:04 GMT; domain=.domain.com; path=/; httponly
Access-Control-Allow-Origin: http://local-web.domain.com
Access-Control-Allow-Credentials: true
Set-Cookie: .ASPXAUTH=E18F1521FFF70FDFD60444F6EA791D28DDF1010F907D35DD13CDA7E2698CE9DCFB50A25853A5BCFEA0E21820A0760D8412D517548F59344EDDA052DD6D7BD7DDB1D47D011F2EFE3B58B6B2690B370D54C560FC6FA3B0990190E0CB8A8B4CC80BEA925CA928256C78C502E74444566785C95EDC399777B3CB0D2AAFFD219B3ED5; domain=.domain.com; path=/; HttpOnly
Set-Cookie: Visitor=acfbc21b-6259-4000-809d-7dbc72db8309; domain=.domain.com; expires=Sat, 10-Jan-2015 00:16:04 GMT; path=/; HttpOnly
Set-Cookie: Visit=78406825-adf1-4224-af57-0350136a5fc6; domain=.domain.com; path=/; HttpOnly
Set-Cookie: Culture=en; domain=.domain.com; expires=Sat, 10-Jan-2015 00:16:04 GMT; path=/; HttpOnly
Date: Fri, 10 Jan 2014 00:16:04 GMT
Content-Length: 122

{"token":"dsaaflkdaflkxEfrLEUH2Bsfdsjfdksfjdsklfj","firstName":"Steve","lastName":"Smith"}

ただし、ページをリロードすると; 応答で設定された Cookie が存在しないことがわかりました。Chrome 開発者ツールでさらに調査したところ、ログイン応答後に Cookie が保存されていないことがわかりました。Set-Cookie ヘッダーがあっても。

ここで何が間違っているのかわかりません。サイトでの同様の質問とその回答を調べます。Cookie が保存され、サブドメイン間で再送信されるように、すべてが適切に設定されていると思います。過去 1 時間グーグルで検索しましたが、何も見つかりませんでした。何か案は?

4

1 に答える 1

0

Charles Proxyアプリケーションで再現されているように、

競合 Cookieを置き換えるhttponlyと、問題なく動作しました。HttpOnly

それが問題だと思います。

于 2014-01-10T18:49:29.180 に答える