NSHTTPCookieStorageの指定ドメインのCookie削除について
NSHTTPCookie Storageのcookie削除についてハマった件について。
まず、NSHTTPCookieStorageのCookieがOSでシェアしているとの情報を見かけますが、Cookieが処理されるのは、指定アプリ内だけですね。
さて、NSHTTPCookieStorageのcookiesForURLでは、指定ドメインのセッションCookieが取得できません。セッションCookieを取得するには、.をドメインの前に付与する必要があり、
これは、全取得を行って、下のようなやり方でとりあえず対処できました。
About to delete NSHTTPCookie by specified domain.
At first I used [NSHTTPCookieCtorage cookiesForURL:domain] to delete specified cookie.
but session cookie doesn't match and cannot delete.
It has to push '.' before specified domain to get session cookie.
This way is able to delete both normal and usual cookie by domain.
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for(NSHTTPCookie *cookie in [storage cookies]){ NSDictionary *cookieProperty = [cookie properties]; if([[cookieProperty objectForKey:NSHTTPCookieDomain] isEqualToString:@"twitter.com"] || [[cookieProperty objectForKey:NSHTTPCookieDomain] isEqualToString:@".twitter.com"] ){ [storage deleteCookie:cookie]; } }