Skip to content

Instantly share code, notes, and snippets.

@is8r
Created January 9, 2017 04:55
Show Gist options
  • Save is8r/2f3a6d34a38bcf79cfa1cc044bf8f907 to your computer and use it in GitHub Desktop.
Save is8r/2f3a6d34a38bcf79cfa1cc044bf8f907 to your computer and use it in GitHub Desktop.
ログインのcookieをwebViewに渡したりAlmofireに渡したりして使用します。
/*
Cookie Manager
howto:
load:
let hasCookie = CookieManager().loadCookies()
save:
CookieManager().saveCookies()
delete:
CookieManager().deleteCookies()
*/
import UIKit
import CoreData
class CookieManager {
let targetDomain = "logb.herokuapp.com"
let dataKey = "cookie"
func loadCookies() -> Bool {
let ud: UserDefaults = UserDefaults.standard
let data: Data? = ud.object(forKey: dataKey) as? Data
if (data != nil){
let cookie: HTTPCookie? = NSKeyedUnarchiver.unarchiveObject(with: data!) as? HTTPCookie
HTTPCookieStorage.shared.setCookie(cookie!)
return true
} else {
return false
}
}
func saveCookies() {
for cookie:HTTPCookie in HTTPCookieStorage.shared.cookies! as [HTTPCookie] {
if cookie.domain as String == targetDomain {
let ud: UserDefaults = UserDefaults.standard
let data: Data = NSKeyedArchiver.archivedData(withRootObject: cookie)
ud.set(data, forKey: dataKey)
}
}
}
func deleteCookies() {
let ud: UserDefaults = UserDefaults.standard
let data: Data? = ud.object(forKey: dataKey) as? Data
if (data != nil) {
ud.removeObject(forKey: dataKey)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment