hachinoBlog

hachinobuのエンジニアライフ

UIWebViewのCookie削除方法

アプリでfacebookアカウントを使用してWebサービスログイン機能実装していた際に一度facebookアカウントでログインしてからログアウト。
その後に再度facebookログインを試みるとIDとPWを求められることなく先ほどまでログインしていたアカウントで勝手にログインしてしまった。
UIWebViewのキャッシュをクリアしても事象は変わらず。
解決方法としてはUIWebViewのCookieを削除したらいけた。

NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *cookies = [cookieStorage cookiesForURL:[NSURL URLWithString:fbApiUrl]];  //fbApiUrlはfb経由でログインする際のApiURL
for (id obj in cookies) {
    [cookieStorage deleteCookie:obj];
}

どのCookieか特定できなくて全部消しちゃいたいときは

NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (id obj in [cookieStorage cookies]) {
    [cookieStorage deleteCookie:obj];
}

参考URL
http://hiro0104.blog52.fc2.com/blog-entry-36.html