iOS Swift WKWebView 쿠키 유지

 

 

 

 

 

 

 

 

 

UIWebView 사용하던것과 비교해서 WKWebView 쿠키는 

종료후 다시 실행할때 대부분 유지하나, 

PHPSESSID 쿠키는 기존값을 유지하는것이 아니라 새로 만들어서, 자동로그인 등을 구현할때 동작이 되지 않는 경우가 있다.

 

이때 임으로 앱에서 자동로그인시 PHPSESSID 쿠키값을 저장하고, 실행할때마다 저장된 쿠키를 불러서 사용하면, 

PHPSESSID 쿠키값을 유지할 있다.

 

1. PHPSESSID 쿠키값 저장

// 자동로그인 선택후 로그인시
// 쿠키가져와서 PHPSESSID 쿠키값은 내장스토리지 변수에 저장
                if #available(iOS 11.0, *) {
                    WKWebsiteDataStore.default().httpCookieStore.getAllCookies { (cookies) in
                        for cookie in cookies{
                            print("@@@ cookie ==> \(cookie.name) : \(cookie.value)")
                            if cookie.name == "PHPSESSID" {
                                UserDefaults.standard.set(cookie.value, forKey:"PHPSESSID")
                                print("@@@ PHPSESSID  저장하기: \(cookie.value)")
                            }
                        }
                    }
                } else {
                    // Fallback on earlier versions
                }

2. 저장된 PHPSESSID 쿠키값 불러와서 세팅

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
	let loadedSessid = UserDefaults.standard.value(forKey: "PHPSESSID") as! String?
        if let temp = loadedSessid{
            print("@@@ PHPSESSID  불러오기~~: \(temp)")
            // 이게 정상동작하는듯.. 자동로그인 됨
            let cookieString : String = "document.cookie='PHPSESSID=\(temp);path=/;domain=\(cookie_domain);'"
            webView.evaluateJavaScript(cookieString)
        }
}

참고) iOS Swift WKWebView 쿠키값 가져오기 https://g-y-e-o-m.tistory.com/83

 

 

+ Recent posts