我有iOS应用程序,您需要登录,并查看一些用户数据... 对于一些额外的编辑,我有url链接到页面,用户可以在哪里设置一些特殊属性,...但是如果用户已经登录到应用程序,那么用户登录页面内容真的很烦人。
出于这个原因,我需要在HTTPCookieStorage中存储自定义cookie,这样当用户导航到页面时,将为他设置身份验证cookie。
如何使用键值创建自定义Cookie,并将其存储,以便Safari在用户导航到我的页面时使用它?
修改
我会提供更多信息,以便更好地了解我的情况。
我的应用内有一个按钮。
点击此按钮后,我调用API获取有效令牌。 收到令牌后,我需要将此令牌存储为cookie。 "服务器"这样做的方式是
localStorage.setItem('token', this.token)
我将此令牌存储到HTTPCookieStorage后,我将打开我的页面。
UIApplication.shared.open(myURL, options: [:], completionHandler: { (success) in
print("Url open")
})
在myURL的页面中,应用程序会查找令牌cookie。如果存在cookie,则打开Web应用程序,否则显示登录页面。
所以我的目标是阻止打开登录页面。
答案 0 :(得分:-1)
存储您的Cookie:
func storeCookies() {
let cookiesStorage = HTTPCookieStorage.shared
let userDefaults = UserDefaults.standard
let serverBaseUrl = "http://example.com"
var cookieDict = [String : AnyObject]()
for cookie in cookiesStorage.cookies(for: NSURL(string: serverBaseUrl)! as URL)! {
cookieDict[cookie.name] = cookie.properties as AnyObject?
}
userDefaults.set(cookieDict, forKey: "cookiesKey")
}
<强>提取强>
func restoreCookies() {
let cookiesStorage = HTTPCookieStorage.shared
let userDefaults = UserDefaults.standard
if let cookieDictionary = userDefaults.dictionary(forKey: "cookiesKey") {
for (_, cookieProperties) in cookieDictionary {
if let cookie = HTTPCookie(properties: cookieProperties as! [HTTPCookiePropertyKey : Any] ) {
cookiesStorage.setCookie(cookie)
}
}
}
}