본문 바로가기
iOS/swift

webView - 쿠키

by 패쓰킴 2025. 11. 14.
728x90

네이티브에서 웹으로 쿠키를 전달

웹뷰에 로그인 기능이 있고 이 로그인이 자동으로 되기를 원할때에도 응용 가능

 

일반적으로 웹 환경에서는 토큰 값을 전달할 때 쿠키를 사용한다.

그 이유는 쿠키를 사용했을 때 Secure 또는 HttpOnly 속성을 설정하여 보안을 강화할 수 있기 때문

쿠키를 사용하지 않으면 URL 파라미터로 전달하거나 evaluateJavaScript 를 사용하여 전달할 수 있지만 URL 파리미터로 전달하는 것은 토큰이 노출되고 evaluateJavaScript로 전달하는 것은 웹에서도 앱에서도 토큰을 처리하는 추가 로직의 구현이 필요하다.

따라서 쿠키를 사용하면 앱에서는 단순히 토큰을 저장만 해주고 웹에서는 앱이 전달해주는 토큰이 포함된 쿠키가 자동으로 처리되어 보안의 강화와 편리함으로 일반적인 토큰 전달 방식으로 사용되는 것이다.

 

// 네이티브에서 받은 토큰을 쿠키로 웹뷰에 전달
let cookie = HTTPCookie(properties: [
        .domain: "myapp.com",
        .path: "/",
        .name: "authToken",
        .value: token,
        .secure: true
])!
    
HTTPCookieStorage.shared.setCookie(cookie)

 

쿠키 가져오기

// 특정 도메인의 쿠키
let cookies = HTTPCookieStorage.shared.cookies(for:
                                          URL(string: "<https://myapp.com>")!)!
// 앱 전체에서 공용으로 사용하는 모든 쿠키
let cookies = HTTPCookieStorage.shared.cookies
for cookie in cookies {
    print("Cookie name: \\(cookie.name), value: \\(cookie.value)")
    // 삭제 하고 싶으면
    HTTPCookieStorage.shared.deleteCookie(cookie)
}

// WKWebView 전용 쿠키
let cookieStore = webView.configuration.websiteDataStore.httpCookieStore
cookieStore.getAllCookies { cookies in
    for cookie in cookies {
        cookieStore.delete(cookie)
    }
}

 

특정 도메인 처리

cookieStore.getAllCookies { cookies in
    for cookie in cookies where cookie.domain.contains("ad") || 
                                cookie.domain.contains("tracking") {
        // todo...
    }
}
728x90

'iOS > swift' 카테고리의 다른 글

webView - 파일 로드  (0) 2025.11.27
webView - 새 창  (0) 2025.11.12
디버그, 릴리즈 용 사용 값 구분하기  (1) 2024.07.08
숫자 다루기  (0) 2023.11.07
attributedString  (0) 2022.12.26

댓글