UIWebView의 모든 쿠키를 삭제하는 방법은 무엇입니까?


91

내 응용 프로그램에는 UIWebview로그인을 위해 링크드 인 인증 페이지를로드 하는 것이 있습니다. 사용자가 로그인하면 쿠키가 애플리케이션에 저장됩니다.

내 앱에 연결된 로그인과 관련이없는 로그 아웃 버튼이 있습니다. 따라서 사용자가이 버튼을 클릭하면 앱에서 로그 오프됩니다. 이 로그 오프가 앱에서도 그의 링크드 인 쿠키를 지워서 사용자가 완전히 로그 아웃하기를 바랍니다.

답변:


209

에 따르면 이 질문에 , 당신은 "쿠키 항아리"에 각 쿠키를 통해 갈 수과 같이, 삭제 :

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

@Felipe 임시 방법을 찾았습니다. 마지막으로 로그 아웃하면 앱로드에서 쿠키를 삭제해야합니다.
Ishu

내가 지금하고 있어요,하지만 정말 그냥 현재의 세션 영원하지 어떻게 정말 쿠키 삭제에 대한 질문에 대답하지 않습니다 정확히 무슨 그, 그래, 잘 @Ishu
펠리페 브람스

쿠키를 영구적으로 삭제합니다. 이후에 요청을하면 쿠키가 다시 생성 될 수 있습니다. 또한 사용자가 로그 아웃하는 상황에서만 쿠키를 삭제하려는 경우 로그 아웃은 실제로 세션이 종료되는 것이므로 세션 쿠키 만 삭제하는 것이 좋습니다. 그렇지 않으면 사용자가 세션간에 유지하려는 잠재적 설정이 손실됩니다.
dsingleton

19
[[NSUserDefaults standardUserDefaults] 동기화]를 호출하여 변경 사항이 디스크에 저장되었는지 확인하십시오. @felipe 이것이 후속 실행에서 쿠키가 반환되는 이유입니다.
Yetanotherjosh

나는 이것을 시도했지만 저장은 0 카운트를 반환하고 iOS 8 시뮬레이터에서 테스트합니다. 그래서 어떻게 사파리에서 페이스 북의 쿠키를 삭제할 수 있습니까?
Nada Gamal 2014

8

이것에 관한 정보를 추가하고 싶었습니다.

에서 OS X 10.9 / 아이폰 OS 7 이상, 당신은 사용할 수 있습니다 -resetWithCompletionHandler을 : 쿠키 및 캐시 등 당신의 전체 응용 프로그램의 선택을 취소 sharedSession:

모든 쿠키, 캐시 및 자격 증명 저장소를 비우고, 디스크 파일을 제거하고, 진행중인 다운로드를 디스크로 플러시하고, 향후 요청이 새 소켓에서 발생하도록합니다.

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

에 대한-에서 루프deleteCookie:같은 소리 컬렉션을 열거하는 동안 수정 나에게. (모르겠어요, 나쁜 생각일까요?)


성공적으로 실행 된 두 가지 방법을 모두 사용했지만 여전히 Google이이 모든 작업 (로그인하지 않음) 후에도 검색 기록을 표시하고 있음을 발견했습니다. 어떤 아이디어? 감사합니다
mylogon

이것이 Alamofire의 모든 상태와 내 백엔드 REST API 사용에 영향을 미칩니 까? Alamofire의 솔루션은 URLSession을 기반으로하지 않습니까?
Sajjon

1

WebView의 html 내에 쿠키를 정리하는 함수를 만들 수 있습니다.

청소를 한 번만 수행해야하는 경우 앱이 시작될 때만 Titanium 이벤트로이 기능을 트리거 할 수 있습니다.


1

누구든지 Swift Solution을 찾고 있다면 :

    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.