UIWebViewのすべてのCookieを削除する方法


91

私のアプリケーションでは、UIWebviewログイン用のlinkedin authページをロードするを持っています。ユーザーがログインすると、Cookieがアプリケーションに保存されます。

私のアプリには、Linkedinログインに関連しないログアウトボタンがあります。したがって、ユーザーがこのボタンをクリックすると、アプリからログオフします。このログオフにより、アプリからも彼のリンクされたCookieがクリアされ、ユーザーが完全にログアウトできるようにしたい。

回答:


209

この質問によると、次のように、「Cookie Jar」の各Cookieを確認して削除できます。

NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [storage cookies]) {
   [storage deleteCookie:cookie];
}
[[NSUserDefaults standardUserDefaults] synchronize];

@Felipe一時的な方法が見つかりました。前回ログアウトした場合、アプリのロードでCookieを削除する必要があります。
Ishu

@Ishuも、はい、それは私が今やっているまさにだが、それは本当に永遠にだけでなく、現在のセッションのためにどのように本当に削除Cookieに質問に答えていない
フェリペ・ブラマ

クッキーを完全に削除します。その後に行われる要求により、Cookieが再作成される可能性があります。また、ユーザーがログアウトしている状況でのみCookieを削除する場合は、ログアウトはセッションの終了にすぎないため、セッションCookieのみを削除することをお勧めします。そうしないと、ユーザーがセッション間で保持したい潜在的な設定が失われます。
シングルトン

19
[[NSUserDefaults standardUserDefaults] synchronize]を呼び出して、変更がディスクに保存されていることを確認してください。@felipeこれが、後続の実行でcookieが返される理由です。
Yetanotherjosh

私はこれを試しましたが、ストレージは0カウントを返します、私はそれをiOS 8シミュレータでテストします。
Nada Gamal 2014年

8

これに関するいくつかの情報を追加したかっただけです。

ではOS X 10.9 / iOSの7以降では、あなたが使用することができ-resetWithCompletionHandlerを:クッキーとキャッシュなど、あなたからの全アプリのをクリアするにはsharedSession

すべてのCookie、キャッシュ、および資格情報ストアを空にし、ディスクファイルを削除し、進行中のダウンロードをディスクにフラッシュし、新しいソケットで将来の要求が発生するようにします。

[[NSURLSession sharedSession] resetWithCompletionHandler:^{
    // Do something once it's done.
}];

以下のためのインループを持つdeleteCookie:ような音のコレクションを列挙しながら、修正する私に。(わからない、悪い考えかもしれない?)


私は正常に実行される両方の方法を使用しましたが、これらすべてを実行しても(サインインしていない)後もGoogleが検索履歴を表示していることがわかります。何か案は?ありがとう
mylogon 2017年

これは、Alamofireの状態と、バックエンドREST APIの消費に影響しますか?Alamofireはその解決策をURLSessionに基づいていませんか?
サジョン2017年

1

Cookieを消去するWebViewのhtml内に関数を作成できます。

アプリの起動時にのみ、Titaniumイベントでこの関数をトリガーできるのは、一度だけクリーニングを実行する必要がある場合です。


1

誰かがSwiftソリューションを探している場合:

    let storage = HTTPCookieStorage.shared
    if let cookies = storage.cookies{
        for cookie in cookies {
             storage.deleteCookie(cookie)
        }
    }
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.