Alamofire-Cookie相關

weixin_33936401發表於2018-03-27

前言

app實現自動登入有很多種,比如常見的token,今天來講一下利用Cookie來實現自動登入。

網路請求

網路請求使用的是Alamofire,對Cookie進行永久化儲存,請求介面的時候設定HTTPHeaders,然後獲取成功之後進行本地儲存,下面直接添程式碼

// 請求頭
if (UserDefaults.standard.string(forKey: "ml_cookie") != nil) && URLString == "member/me" {
            headers = [
            "Content-Type":"application/json",
            "Cookie":(UserDefaults.standard.string(forKey: "ml_cookie"))!
            ]
        }

請求成功之後

Alamofire.request(url, method: method, parameters: parameters, headers: headers).responseJSON { (response) in
            
            let headerFields = response.response?.allHeaderFields as! [String: String]
            let cookie = headerFields["Set-Cookie"]
            if cookie != nil && URLString == "member/login" {
                UserDefaults.standard.set(cookie, forKey: "ml_cookie")
            }
}

好了,大功告成了。