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)
}
}
[Swift] Cookie 使用
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 问题描述 Azure应用程序网关设置 set_Cookie=key=value; SameSite=Strict;...
- 最近在研究express,学着使用cookie,开始不会用,就百度了一下,没有百度到特别完整的解答。查阅了expr...
- 参考地址://www.greatytc.com/p/c93fc8c42311 安装 引入 使用 1、设置...
- 什么是cookie: 在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求...
- 一、新建项目 rails new app --skip-bundle 完成后修改Gemfile文件:vim Gem...