首页 > 解决方案 > 如何在 iOS 网络应用中保持连接?

问题描述

我正在开发一个需要用户登录的 iOS 网络应用程序。目前,当应用程序关闭或进入后台以及用户重新打开应用程序时,我将 cookie 存储在钥匙串中,我加载存储的数据并记下 cookie。但我的问题是我不知道如何重新加载网站以避免用户需要租用他的凭据。

这是我加载cookies的方法

func loadCookies(){
    print("loading")
    let url = URL(string: "mobi.kronos-sport.com")!
    let keychain = KeychainSwift()
    let data=keychain.allKeys
    for key in data {
        let value = keychain.get(key)!
        var dayComponent    = DateComponents()
        dayComponent.day=21
        let theCalendar     = Calendar.current
        let nextDate        = theCalendar.date(byAdding: dayComponent, to: Date())

        print("k \(key) v \(value)")
        let httpCookie = HTTPCookie.init(properties:
            [HTTPCookiePropertyKey.version : "0",
             HTTPCookiePropertyKey.name : key,
             HTTPCookiePropertyKey.path : "/",
             HTTPCookiePropertyKey.value : value,
             HTTPCookiePropertyKey.expires : nextDate])
        if let cookie = httpCookie {
            HTTPCookieStorage.shared.setCookie(cookie)
        }
    }
}

控制台日志显示它找到了正确的键/值对

标签: iosloggingweb-applicationssession-cookies

解决方案


似乎有一个服务器端配置阻止恢复会话(cookie cookie 安全)


推荐阅读