Как получить все файлы cookie после успешного входа в систему POST? У меня есть следующий код для входа в систему на моем сервере Django, но кажется, что он никогда не создает session_id
cookie, только csrftoken
. В настоящее время я получаю их от HTTPCookieStorage.shared.cookies
, но у меня возникает ощущение, что мне нужно вручную вытащить их из URLSession.dataTask
?
Логин:
func login() {
let url = urlForEP(ep: loginEP)
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue(self.csrfToken, forHTTPHeaderField: "X-CSRFToken")
let postData = [
"username" : username,
"password" : password
]
let jsonData = try! JSONSerialization.data(withJSONObject: postData, options: [])
let task = session.uploadTask(with: request, from: jsonData) { data, response, error in
guard (response as! HTTPURLResponse).statusCode == 200 else {
print("Failed to login")
return
}
print("Successfully logged in!")
self.printCookies()
self.getItems()
}
task.resume()
}
Распечатка печенья:
func printCookies() {
for cookie in HTTPCookieStorage.shared.cookies! {
print("\(cookie.name): \(cookie.value)")
}
}
Результат:
csrftoken: lLgwYilYyqGzBfmkyvn8rZz6t6j8C8Ly7gwFxkcgAst1AODGukBCY6PGTXmTflmz