2016-03-29 8 views
4

HTTPSウェブサイトにログインするアプリを開発しています。認証後、Webサイトは「セキュア」とマークされた最終的なクッキーを送信します。バックグラウンドNSURLSessionでセキュアなCookieが失われたのはなぜですか?

NSURLSession()defaultSessionConfiguration()を使用するとアプリが動作します。

backgroundSessionConfigurationWithIdentifier()を使用するようにアプリ内の1行を変更すると、認証段階を過ぎることはできません。私は、私が認証されていることを示すWebページを取得しますが、その後のリクエストはログインページを返します。

「認証成功クッキー」は、共有クッキーストレージに存在しないようです。

このCookieは、Webサイトが「安全」とマークする唯一のCookieです。このHTTPS Webサイトは、すべてHTTPS経由でトランザクションを実行します。

TL; DR NSURLSessionのバックグラウンドセッションは、セキュアなCookieを失うためにデフォルトのセッションとは何か異なりますか?

編集:私はもう少し作業をしました。 NSURLSessionは、リダイレクトのヘッダに送られたクッキーを無視するように見えるbackgroundSessionConfigurationを使用してをリダイレクト

? (私はクッキーが「安全」であるとは限りません。)

defaultSessionConfigurationが指定されていると、リダイレクトが正しく機能します。

+0

を参照してください。** – Vin

+0

申し訳ありません。私はこれが** iOSアプリ**であると言わざるを得ない。そのため、クッキーはアプリのsharedStorageにのみ保存されます。 – andymc

答えて

0

これは既知のバグであることが判明しました。 Apple r。 16,852,027。

backgroundSessionは、リダイレクト時に新しいCookieを無視することが知られています。これを解決するには、defaultSessionを使用してCookieを取得し、次にbackgroundSessionを使用します。

は、デフォルトのセッション構成は、(結果をファイルにダウンロードされる場合を除く)、永続ディスクベースのキャッシュを使用して、ユーザのキーチェーンに**店舗資格Apple Developer Forum post

関連する問題