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.