2017-02-28 8 views
1

Ich habe den folgenden Code, um Cookies zu speichern, aber der Cookie wird nicht gespeichert. Der Code zum Abrufen des Cookies zeigt, dass mein Cookie in den freigegebenen Cookies nicht vorhanden ist. Der "Set-Cookie" wird gedruckt, aber "Cookie holen" zeigt meinen Cookie nicht an. Ich kann es erhalten, um einen neuen Cookie zu speichern, aber einen vorhandenen Cookie nicht zu überschreiben.Swift Cookie Set überschreibt bestehenden Cookie

func setCookie() { 

    let infoModel = UserInfoManager.getUserInfoModel() 
    if infoModel != nil { 

     let ExpTime = TimeInterval(60 * 60 * 24 * 365) 

     let cookieProps: [HTTPCookiePropertyKey : Any] = [ 

      HTTPCookiePropertyKey.domain: ".mydomain.com", 
      HTTPCookiePropertyKey.path: "/", 
      HTTPCookiePropertyKey.name: "DEV", 
      HTTPCookiePropertyKey.value: infoModel!.userAccessToken!, 
      HTTPCookiePropertyKey.secure: "TRUE", 
      HTTPCookiePropertyKey.expires: NSDate(timeIntervalSinceNow: ExpTime), 
      HTTPCookiePropertyKey.version: "0"     
     ] 

     print("WEB REQUEST ACCESS TOKEN \(infoModel!.userAccessToken!)") 

     if let cookie = HTTPCookie(properties: cookieProps) { 
      HTTPCookieStorage.shared.setCookie(cookie) 

      print("\(cookie)") 

      print("GET COOKIE \(HTTPCookieStorage.shared.cookies)") 

     } 
     else { 
      print("set cookie failed") 
     } 

.... 

} 

Antwort

3

Ich musste den Cookie löschen, den ich zuerst überschreiben wollte.

let cookieJar = HTTPCookieStorage.shared 

    for cookie in cookieJar.cookies! { 
     if cookie.name == "DEV" { 
      HTTPCookieStorage.shared.deleteCookie(cookie) 
     }    
    }