URLSession не получает файл cookie SessionID - PullRequest
0 голосов
/ 08 июня 2019

Как получить все файлы 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...