[Swift] Cookie 使用
2023-03-21 本文已影响0人
巨馍蘸酱
import Foundation
struct CookieUtil {
private static let cookieName = "login_token"
private static var baseUrl: URL { NetworkApi.activeBaseURL }
// 删除
static func removeToken(){
let cookieStorage = HTTPCookieStorage.shared
guard let cookies = cookieStorage.cookies(for: baseUrl) else { return }
for cookies: HTTPCookie in cookies {
cookieStorage.deleteCookie(cookies)
}
}
// 获取, 可以保存到 userdefault 中
static func getToken() -> String {
guard let cookies = HTTPCookieStorage.shared.cookies(for: baseUrl) else { return "" }
let token = cookies.first(where: { $0.name == cookieName }).map{ $0.value }
return token ?? ""
}
// 设置
static func setToken(token: String){
var properties = [HTTPCookiePropertyKey : Any]()
properties[HTTPCookiePropertyKey.domain] = baseUrl
properties[HTTPCookiePropertyKey.name] = cookieName
properties[HTTPCookiePropertyKey.value] = token
properties[HTTPCookiePropertyKey.expires] = Date().addingTimeInterval(3600*24*30)
guard let cookie = HTTPCookie(properties: properties) else { return }
HTTPCookieStorage.shared.setCookie(cookie)
}
}