LoginSignup
32
34

More than 5 years have passed since last update.

UIWebViewのCookieを削除する(Googleアカウントでログインなどで前の状態が保持されてしまう問題)

Posted at

写真 2014-03-10 14 27 53.png

iOSアプリでGoogleアカウント(Facebookアカウントも同様)を使用してログインすることができるサービスを作ってた時に遭遇しました。
一度、アプリ内のUIWebViewでGoogleアカウントにログイン。
その後、一度ログアウトし、もう一度Googleアカウントでログインしようとすると、メールアドレスとパスワードを聞かれることなく、勝手に前にログインしたアカウントでログインしてしまうという問題に遭遇しました。

UIWebViewのキャッシュを削除しても変わらず。

結果として、Cookieを削除するといけました!

UIWebViewのCookieを削除する

特定のURLのCookieを削除する

hoge.m
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *cookies = [cookieStorage cookiesForURL:[NSURL URLWithString:@"http://hogehoge.com"]];
[cookies enumerateObjectsUsingBlock:^(NSHTTPCookie *cookie, NSUInteger idx, BOOL *stop) {
        [cookieStorage deleteCookie:cookie];
    }];

Cookieを全部削除する

hoge.m
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
[[cookieStorage cookies] enumerateObjectsUsingBlock:^(NSHTTPCookie *cookie, NSUInteger idx, BOOL *stop) {
        [cookieStorage deleteCookie:cookie];
    }];

余談

NSArrayの高速列挙はfor-inではなく、enumerateObjectsUsingBlockがオススメです!

32
34
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
34